Vue.js中data,props和computed資料
阿新 • • 發佈:2019-02-15
在用Vue.js做開發的時候,一定知道 data, props和computed。用了這麼久的Vue就總結一下這個三個東西,首先看看官網怎麼定義他們,https://cn.vuejs.org/v2/api/#data 。
data 是Vue例項的資料物件。Vue將會將data 的屬性轉換為 getter/setter, 也就是用Object.defineProperty方法(在官網裡面有深入響應式原理裡面具體的介紹)。物件必須是純粹的物件(含有零個或多個的key/value對)。因為這裡面的資料都是被監控的,所以說這裡面的資料最好都是在檢視層顯示的資料。如果說不是在檢視層展示的變數。可以定義在外面或者放在vm物件上。
例如:
let baz = ''
export default {
data() {
return {
bar: 'bar'
}
},
methods: {
testFn() {
// baz
}
}
}
bar 變數是在頁面中要顯示的欄位,baz就是在函式裡面會用到的資料。如果視圖裡面不用顯示的話就沒必要寫在data裡面。這樣
可以減少開銷,提高效能。
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
}
}
}