vue 组件中data函数的思考

316 阅读1分钟

官方文档的解释:

当我们定义这个 <button-counter> 组件时,你可能会发现它的 data 并不是像这样直接提供一个对象:

data: {
  count: 0
}

取而代之的是,一个组件的 data 选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝:

data: function () {
  return {
    count: 0
  }

个人思考:

var MyComponent = function() {
  this.data = this.data()
}
MyComponent.prototype.data = function() {
  return {
    a: 1,
    b: 2,
  }
}

每个组件的data属性必须是相互独立的,属于私有作用域。否则,同一组件重复使用就会相互影响(如果是object的话)。