vue深入響應式原理

2021-09-19 07:26:30 字數 1400 閱讀 8447

資料模型–》 vm中 的data選項

狀態管理:

什麼叫做狀態?什麼叫做狀態管理?

我們使用乙個資料去管理檢視中的乙個部分, 那麼這條資料就叫做狀態, 這種管理模式就叫做狀態管理

總結:1. 什麼是深入響應式原理?

a.當檢視模型(vm)中的資料模型(m)發生改變時, 檢視(v)就會進行更新

b.vue通過watcher將data中的屬性全部使用object.definepropery程式設計getter和setter,當屬性值發生改變的時候, 就會觸發, 然後wather就會觸發, 告訴檢視(v)進行重新渲染

c.資料必須放在data選項中才能進行深入響應式

object.definepropery介紹:

object.defineproperty(obj,obj.attr,descriptor)

引數:obj

要在其上定義屬性的物件。

prop

要定義或修改的屬性的名稱。

descriptor

將被定義或修改的屬性描述符。它是乙個物件, 這個物件有哪些構成?

configurable: 決定了物件的key是否可刪除

enumerable: 決定了物件是否可遍歷(列舉)

writeable: 決定了物件的key的value是否可修改

儲存器:

get函式 ----起了個名字getter 設定當前物件的key的初始值

set函式 ----起了個名字setter 修改當前物件的key的值

底層原理:

核心使用的是es5的乙個方法,這個方法不支援ie8以及以下

總結:深入響應式原理是利用了資料劫持和訂閱發布的模式, 當資料模型發生改變的時候, 檢視就會響應的進行更新, 那麼深入響應式原理是利用es5的object.defineproperty中的getter/setter來進行資料的劫持的

名稱解釋:

資料劫持: object.defineproperty中的getter/setter , 然後再執行watcher

訂閱發布:事件(自定義事件)

訂閱: 事件的宣告 vm.on發

布:事件

的觸發v

m.

on 發布: 事件的觸發 vm.

on發布:事

件的觸發

vm.emit

非響應式情況

在vm模型的data外定義的屬性, 就是非響應式屬性, 非響應式屬性, 屬性值更新, 檢視不會更新

非響應式屬性如何變成響應式屬性

思維: 將非響應式屬性合併到響應式屬性身上

解決: 利用了vue提供的 vue.set/this.$set(vm.dataattr,prop,value)

vue.set底層原生是什麼?

object.assign(目標物件,物件1, 物件2,物件3)

vue深入響應式原理

資料模型 vm 建立的例項 new vue 中 的data選項 狀態管理 什麼叫做狀態?什麼叫做狀態管理?我們使用乙個資料去管理檢視中的乙個部分,那麼這條資料就叫做狀態,這種管理模式就叫做狀態管理 物件的建立 1.var obj 2.var obj new object 深入響應式原理 1.當檢視模...

Vue響應式原理深入解析

vue最明顯的特性之一便是響應式系統,其資料模型即是普通的 j ascript 物件。而當你讀取或寫入它們時,檢視便會進行響應操作。響應式data div id exp div const vm new vue vm.message this is b 響應式 vm.message this is ...

vue深入響應式原理及雙向繫結原理

深入響應式原理 當檢視模型 vm 中的資料模型 m 發生改變時,檢視 v 就會進行更新 vue通過watcher將data中的屬性全部使用object.definepropery程式設計getter和setter,當屬性值發生 改變的時候,就會觸發,然後wather就會觸發,告訴檢視 v 進行重新渲...