Rumah > Soal Jawab > teks badan
Dokumentasi rasmi Vue mengatakan bahawa data tika Vue disimpan dalam objek data, dan Vue akan menukar sifat data secara rekursif kepada getter/setters, supaya sifat data boleh bertindak balas terhadap perubahan data.
var data = { a: 1 }
// 直接创建一个实例
var vm = new Vue({
data: data
})
vm.a // -> 1
vm.$data === data // -> true
Soalan saya sekarang ialah:
data() {
return {
favorite: (() => {
return loadFromLocal(this.seller.id, 'favorite', false);
})()
};
}
LoadFromLocal ialah fungsi yang diisytiharkan secara global Instance Vue menukar sifat dalam data kepada getter dan setter Nilai pulangan bagi fungsi yang dilaksanakan dengan segera ini akan berubah disebabkan oleh perubahan dalam fungsi lain. Bagaimanakah Vue memantau perubahan data apabila saya memanggil pengambil dan penetap kegemaran tanpa memanggilnya secara eksplisit? Adakah ia untuk menyemak nilai pulangan fungsi yang dilaksanakan dengan segera sekali-sekala?
phpcn_u15822017-05-19 10:34:29
1 Fungsi pelaksanaan segera telah dilaksanakan sebelum Vue baharu
var App = {
data() {
return {
a: (()=>{ return 1; })()
}
}
}
new Vue({App});
2 Pemantauan dilakukan melalui getter dan setter, tiada sebelum ini. Mencetak atribut dalam templat dan mengakses atribut apabila sedia adalah setara dengan memanggil getter
为情所困2017-05-19 10:34:29
data() {
return {
favorite: (() => {
return loadFromLocal(this.seller.id, 'favorite', false);
})()
//其实和下面没区别,只是初始赋值是立即执行函数的返回值而已
favorite:1
};
}