Vue中的底層原理

qq_987986923發表於2020-12-10
  1. 資料驅動
    當資料發生改變時,檢視也會進行更新,這叫做資料驅動,也就是資料驅動檢視
  2. 深入響應式原理
    資料模型僅僅是普通的 JavaScript 物件。而當你修改它們時,檢視會進行更新
  3. 雙向資料繫結原理
    當我們使用 v-model 指令繫結了表單元素時,那麼我們可以在檢視直接獲得資料,當檢視發生改變時,資料也會進行更新

綜上: 三者都是應用了同一個底層原理,這個底層原理由es5的 Object.defineProperty 屬性來提供

  • vue中底層原理的實現主要是依賴 儲存器( getter/setter )

  • 我們利用了資料劫持和事件的釋出訂閱來實現雙向資料繫結,當我們在vue data選項中定義資料時,vue會通過觀察者物件( observer )將data選項中的所有key,經過Object.defineProperty 的getter 和setter進行設定,當我們通過 v-model指令繫結元素是, 自動觸發getter,getter會返回一個初始值,這樣我們在檢視中就可以看到資料了,當檢視中內容改變時,會觸發setter,setter會通知vue,檢視已經進行了更新,vue會重新生成 虛擬DOM , 繼而通過 新舊 虛擬DOM 對比, 生成patch物件,再將patch對應渲染到檢視中

Vue.set/this.$set 的原理( 陣列的下標和length不響應 )

底層:Object.assign

相關文章