我们在子组件中定义 data 的时候, data 必须是一个函数而不是一个对象,这么设计的意义在于 一个子组件并不像 根组件一样被调用一次,还有一个就是 子组件需要 data 作为函数,并返回一个 独立的对象,作为独立的数据存储,不会出现多个组件之间相互影响的情况。
// Error: The "data" option should be a function that returns a per-instance value in component definitions.
/*
data: {
content: 'this is a row'
},
*/
下面是正确的形式:
Vue.component('row', {
data: function() {
return {
content: 'this is a content'
}
},
template: '<tr><td>{{content}}</td></tr>'
})
博客指出在子组件中定义 data 时,data 必须是函数而非对象。原因一是子组件不像根组件只被调用一次,二是子组件需 data 作为函数返回独立对象,用于独立存储数据,避免多个组件相互影响。
4568

被折叠的 条评论
为什么被折叠?



