vue --- 2.0数据的响应式的一种实现
生活随笔
收集整理的這篇文章主要介紹了
vue --- 2.0数据的响应式的一种实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
初識:
- 實際上是通過Object.defineProperty()方法來實現的
- talk is cheap, show your code
封裝:
- 知道了基本原理后,下一步是要將其封裝起來!
引用Lz類
- 在html中通過script標簽導入Lz類
- 打開瀏覽器,在控制臺輸入app.$data.foo
- 嘗試改變app.$data.foo的值
- 嘗試改變app.$data.hello.world的值
淺拷貝
- 以上,對第一個屬性foo的操作成功的觸發了set函數.
- 由于淺拷貝復制的是引用,我們對對象的修改無法觸發set.
- 簡單的理解就是set只負責監聽自己這一層的變化,下一層的變化.不予監聽
- 解決辦法,使用遞歸.給每一層添加一個setter方法.代碼如下
- 只需在defineReactive里面對world對象設置set和get
- 重寫defineReactive方法
總結
以上是生活随笔為你收集整理的vue --- 2.0数据的响应式的一种实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跨域问题及CORS机制
- 下一篇: vue --- 2.0响应式补充