在Vue編寫組件時,我們通常需要使用data屬性來存儲組件的數(shù)據(jù)。data屬性是一個函數(shù),每個組件都需要返回一個新的數(shù)據(jù)對象。
// 一個簡單的Vue組件 Vue.component('my-component', { data: function () { return { message: 'Hello Vue!' } }, template: '{{ message }}
' })
在上面的例子中,我們創(chuàng)建了一個名為"my-component"的Vue組件,并定義了一個data屬性來存儲組件的數(shù)據(jù)。data屬性返回一個對象,該對象包含一個message屬性,值為"Hello Vue!"。
在組件模板中,我們通過{{ message }}來渲染出數(shù)據(jù)。當(dāng)組件被渲染時,Vue會為每個組件實(shí)例創(chuàng)建一個獨(dú)立的數(shù)據(jù)對象,因此每個實(shí)例都可以擁有它們自己的數(shù)據(jù)。
可以通過在組件實(shí)例中修改數(shù)據(jù)來改變組件的狀態(tài):
// 創(chuàng)建一個my-component實(shí)例 var vm = new Vue({ el: '#app', template: '' }) // 修改my-component實(shí)例中的message屬性 vm.$children[0].message = 'Hello World!'
在上面的例子中,我們創(chuàng)建了一個Vue實(shí)例,并將其掛載到頁面上的一個元素上。該實(shí)例中包含一個"my-component"組件實(shí)例。我們通過vm.$children[0]來訪問該實(shí)例,并通過修改message屬性來改變組件的狀態(tài)。
總之,組件中的數(shù)據(jù)應(yīng)該始終以函數(shù)的形式返回,以確保每個組件實(shí)例都有自己的數(shù)據(jù)對象。通過修改實(shí)例的data屬性中的值,我們可以改變組件的狀態(tài)。