vue雙向繫結的原理

2021-10-03 17:32:21 字數 1057 閱讀 7215

為什麼要學習雙向繫結的原理?

面試提公升自我學習能力

vue雙向資料繫結的原理利用object.defineproperty() ,重新定義了物件獲取屬性值(get)和設定屬性值(set)的操作來實現的。

用法: object.defineproperty( 要操作的物件,要定義或修改的物件屬性名,屬性描述符)

屬性描述符:是乙個物件,主要有兩種形式:資料描述符和訪問描述符。這兩種物件只能選擇一種使用,不能混合兩種描述符的屬性同時使用。上面說的get和set就是屬於訪問描述符物件的屬性。

面試官:說一下vue雙向繫結的原理?

答:vue實現雙向資料繫結利用object.defineproperty() 重新定義了物件獲取屬性值(get)和設定屬性值(set)的操作來實現的。

**演示:defineproperty的用法

var obj =

;var name;

//第乙個引數:定義屬性的物件。

//第二個引數:要定義或修改的屬性的名稱。

//第三個引數:將被定義或修改的屬性描述符。

object.

defineproperty

(obj,

"data",,

//設定值set:

function

(val)})

//賦值呼叫setobj.data = 'aaa';

//取值呼叫getconsole.log(obj.data);

//**演示:defineproperty的雙向繫結

var obj=

;object.

defineproperty

(obj,

'val',}

);document.

getelementbyid

("a").

addeventlistener

("keyup"

,function

(e))

vue雙向繫結原理

大家知道vue的雙向繫結原理是利用object.defineproperty 這一方法,以下是我研究該方法的一些內容 語法 object.defineproperty obj,prop,descriptor descriptor是將被定義或修改的屬性描述符,而雙向繫結是利用get和set屬性描述符。...

Vue雙向繫結原理

vue實現資料雙向繫結的原理就是用object.defineproperty 重新定義 set方法 物件設定屬性值和 get方法 獲取屬性值的操縱來實現的 object.property 方法的解釋 object.property 引數1,引數2,引數3 返回值為該物件obj 其中引數1為該物件 o...

vue雙向繫結原理

vue資料雙向繫結是通過資料劫持結合發布者 訂閱者模式來實現的。首先要對資料進行劫持監聽,所以需要設定乙個 observer,用來監聽所有的屬性。如果屬性發生了變化,就要告訴訂閱者watcher看是否需要更新,因為訂閱者很多,所以我們需要有乙個訊息訂閱器容器dep專門收集訂閱者,然後在 observ...