vue的響應式原理

2021-10-20 17:32:30 字數 938 閱讀 3183

在改變資料的時候,檢視會跟著更新。vue利用object.defineproperty的方法裡面的setter 和 getter方法的觀察者模式來實現的。

這個方法就是在乙個物件上定義乙個新的屬性,或者改變乙個物件現有的屬性,並且返回乙個物件。裡面有兩個字段 set 和 get 。 顧名思義,set 就是設定屬性的值, 而 get 就是獲取屬性的值。

舉個例子:

var bvalue="預設值", o = {};

object.defineproperty(o, "b" , ,

set: function (newvalue) ,

enumerable: true,

configurable: true

})console.log(o.b)

o.b = '修改值'

console.log(o.b)

最終列印

上述例子,我們可以看到出來 ,在對 o.b賦值的時候, 就會呼叫 set 函式, 取值的時候 ,則會呼叫 get 函式。

掌握到這裡 ,我們就可以簡單的模擬下 vue 的 雙向資料繫結了。

const input = document.getelementbyid('input');

const div = document.getelementbyid('div');

let obj = {}

object.defineproperty(obj,"msg",

}) input.addeventlistener('keyup', function(event))

vue響應式布局 Vue 響應式原理

vue2 的資料偵測 在 src observer 目錄裡面,元件例項在初始化時,會呼叫 observe 函式處理 data function initdata vm observe 改寫了所有物件屬性的 getter setter 和陣列原型上的 7 個會改寫陣列方法,從而讓 data 變成可響應...

vue響應式原理

響應式系統是vue框架核心的部分,資料物件僅僅是普通的 js物件。當我們改變資料時,檢視也會被改變,本文就來 一下vue 的響應式原理。vue響應式的核心是使用了es5 新增的api object.defineproperty 因此vue不支援ie8 object.defineproperty的作用...

vue響應式原理

要了解響應式原理首先應該知道什麼是響應式 更改 vue的響應式原理是什麼 vue資料的雙向繫結是通過資料劫持結合發布訂閱模式,偵測到資料變化,然後通過object.defineproperty 物件對每個屬性的getter和setter進行劫持。當讀取 data 中的資料時自動呼叫 get 方法,當...