javascript - 關於Vue中的data綁定
怪我咯
怪我咯 2017-05-19 10:32:29
0
2
585

Vue的官方文件中說,Vue 實例的資料都保存在 data 物件中,Vue 將會遞歸將 data 的屬性轉換為 getter/setter,從而讓 data 的屬性能夠回應資料變更。

var data = { a: 1 } // 直接创建一个实例 var vm = new Vue({ data: data }) vm.a // -> 1 vm.$data === data // -> true

我現在的問題是:

data() { return { favorite: (() => { return loadFromLocal(this.seller.id, 'favorite', false); })() }; }

其中loadFromLocal是全域宣告的函數,Vue實例將data中的屬性轉換成getter和setter,這個立即執行函數的回傳值會因為其它函數變化而改變。當我沒有顯示地呼叫favorite的getter和setter時,Vue是如何監聽資料變化的呢?是每隔一段時間檢查一次立即執行函數的回傳值嗎?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆 (2)
phpcn_u1582

1.立即執行函數在new Vue之前,已經執行了

var App = { data() { return { a: (()=>{ return 1; })() } } } new Vue({App});

2.監聽就是透過getter 和setter進行的,沒有什麼在之前。
在模板中列印屬性,在ready時存取屬性,都相當於調用了getter

    为情所困

    雷雷

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!