Rumah  >  Soal Jawab  >  teks badan

javascript - Mengenai pengikatan data dalam Vue

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?

怪我咯怪我咯2732 hari yang lalu659

membalas semua(2)saya akan balas

  • phpcn_u1582

    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

    balas
    0
  • 为情所困

    为情所困2017-05-19 10:34:29

    data() {
          return {
            favorite: (() => {
                return loadFromLocal(this.seller.id, 'favorite', false);
            })()
            //其实和下面没区别,只是初始赋值是立即执行函数的返回值而已
            favorite:1
          };
        }

    balas
    0
  • Batalbalas