javascript – Informationen zur Datenbindung in Vue
怪我咯
怪我咯 2017-05-19 10:32:29
0
2
694

Vues offizielle Dokumentation besagt, dass die Daten der Vue-Instanz im Datenobjekt gespeichert werden und Vue die Eigenschaften von Daten rekursiv in Getter/Setter umwandelt, sodass die Eigenschaften von Daten auf Datenänderungen reagieren können.

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

Meine Frage ist jetzt:

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

LoadFromLocal ist eine global deklarierte Funktion. Die Vue-Instanz wandelt die Eigenschaften in Daten in Getter und Setter um. Der Rückgabewert dieser sofort ausgeführten Funktion ändert sich aufgrund von Änderungen in anderen Funktionen. Wie überwacht Vue Datenänderungen, wenn ich den Getter und Setter des Favoriten aufrufe, ohne ihn explizit aufzurufen? Soll von Zeit zu Zeit der Rückgabewert der sofort ausgeführten Funktion überprüft werden?

怪我咯
怪我咯

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

Antworte allen(2)
phpcn_u1582

1.立即执行函数在new Vue之前,已经执行完了

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

new Vue({App});

2.监听就是通过getter 和setter进行的,没有什么在之前。
在模板中打印属性,在ready时访问属性,都相当于调用了getter

为情所困
data() {
      return {
        favorite: (() => {
            return loadFromLocal(this.seller.id, 'favorite', false);
        })()
        //其实和下面没区别,只是初始赋值是立即执行函数的返回值而已
        favorite:1
      };
    }
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage