我读了关于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时,我也遇到了这个问题 –