我讀了關於Vue components,並找到他們爲什麼數據需要有些混亂的功能說明:爲什麼VUE組件數據是一個函數?
根實例
var vm = new Vue({
el: '#example',
data: {
message: 'here data is a property'
}
})
A組分
var vm = new Vue({
el: '#example',
data: function() {
return {
counter: 0
}
}
})
Vue文檔通過爲每個組件分配一個全局計數器變量來解釋這種差異,然後Ÿ令人驚訝的是,每個組件都共享相同的數據......並且他們沒有解釋爲什麼他們已經在這裏使用了一個函數。
var data = { counter: 0 }
Vue.component('simple-counter', {
template: '<div>{{ counter }}</div >',
data: function() {
return data
}
})
當然現在數據
<simple-counter></simple-counter>
<simple-counter></simple-counter>
<simple-counter></simple-counter>
共享當你引用一個全局對象作爲數據源,這是毫不奇怪的是,組件沒有自己的數據。對於將數據作爲屬性的根Vue實例也是如此。
var mydata = { counter: 0 }
var vm1 = new Vue({
el: '#example1',
data: mydata
})
var vm2 = new Vue({
el: '#example2',
data: mydata
})
所以我仍然留有一個問題,爲什麼一個組件不能有一個數據屬性?
那篇文章是否澄清此事,謝謝:) – Kokodoko
太棒了!當我開始學習Vue時,我也遇到了這個問題 –