1. 程式人生 > >Vue.js中data,props和computed資料

Vue.js中data,props和computed資料

在用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
				}
			}
		}