data
data 是Vue實例的數據對象。Vue將會將data 的屬性轉換為 getter/setter, 也就是用Object.defineProperty方法(在官網里面有深入響應式原理里面具體的介紹)。對象必須是純粹的對象(含有零個或多個的key/value對)。因為這里面的數據都是被監控的,所以說這里面的數據最好都是在視圖層顯示的數據。如果說不是在視圖層展示的變量。可以定義在外面或者放在vm對象上。
eg:
let baz = '' export default { data() { return { bar: 'bar' } }, methods: { testFn() { // baz } } }
bar 變量是在頁面中要顯示的字段,baz就是在函數里面會用到的數據。如果視圖里面不用顯示的話就沒必要寫在data里面。這樣
可以減少開銷,提高性能。
props
props 是props 可以是數組或對象,用於接收來自父組件的數據。props 可以是簡單的數組,或者使用對象作為替代,
對象允許配置高級選項,如類型檢測、自定義校驗和設置默認值。
computed
計算屬性將被混入到 Vue 實例中。所有 getter 和 setter 的 this 上下文自動地綁定為 Vue 實例。不過計算屬性也用
函數來替代。
computed: { // 僅讀取,值只須為函數 aDouble: function () { return this.a * 2 }, // 讀取和設置 aPlus: { get: function () { return this.a + 1 }, set: function (v) { this.a = v - 1 } } }