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

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

为情所困

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板