vue的最大特點之一就是資料驅動檢視,什麼是資料驅動檢視,簡單來說就是資料變化引起檢視變化。
使得object資料實現『可觀測』,object建構函式提供了defineproperty方法使資料『可觀測』
1、object.defineproperty
該方法允許精確地新增或修改物件的屬性。通過賦值操作新增的普通屬性是可列舉的,在列舉物件屬性時會被列舉到(for...in
或object.keys
方法),可以改變這些屬性的值,也可以刪除
這些屬性。這個方法允許修改預設的額外選項(或配置)。預設情況下,使用object.defineproperty()
新增的屬性值是不可修改(immutable)的。
物件裡目前存在的屬性描述符有兩種主要形式:資料描述符和訪問描述符。資料描述符是乙個具有值的屬性,該值可以是可寫的,也可以是不可寫的。訪問描述符是由 getter 函式和 setter 函式所描述的屬性。乙個描述符只能是這兩者其中之一;不能同時是兩者。
let obj ={};let val = '
object的變化偵測';
object.defineproperty(obj,
'name',,
set: (newval)=>
})console.log(obj.name);
//此處觸發get事件,列印 obj物件的name屬性被讀取了 object的變化偵測
obj.name = '
修改';//
此處觸發了set事件,列印 obj物件的name屬性被修改了 修改
通過object.defineproperty()
方法給obj定義了乙個name
屬性,並把這個屬性的讀和寫分別使用get()
和set()
進行攔截,每當該屬性進行讀或寫操作的時候就會觸發get()
和set()
Vue物件的Object的變化偵測
恢復內容開始 1 什麼是變化偵測 vue.js會自動通過狀態生成dom,並輸出到頁面上進行顯示,這過程稱為渲染,當狀態發生變化時vue能立刻感知到哪些狀態改變了,並進行更新 2.如何追蹤狀態變化 js裡面偵測物件的變化有兩種,一種是object.defineproperty和es6的proxy fu...
JQuery原始碼之 變數,正則
jquery原始碼之 變數,正則 一 jq原始碼中的正則 這裡推薦乙個正則測試理解的 1.d d ee d 分析 這個是檢測數字的。如css中距離,字型等等設定 10px,10px,還有科學技術法 匹配零個或乙個加號或減號 d 非獲取匹配,匹配零或多次數字加點 如32.或匹配空 d 匹配乙個或多個數...
Nginx原始碼分析之變數
server content by lua block map host var 2變數的定義方法有三種,var1是用set指令定義的 變數 1 是正則匹配出來的 變數var 2是用map指令定義的。http host並不是前面三種方法定義的變數,它是屬於 字首變數 它的字首是 http 表示從請求...