当我开始使用Vue.js时,我读到了一个返回数据属性的案例,其中返回,有时没有。我再也找不到这篇文章了,这就是我在这里问的原因。
这就是我今天使用它的方式
data: function () {
return {
myData : "data"
}
},
但这就是我经常在文档中看到它的方式 - 不再知道它们的区别了:
data: {
myData: "data"
},
答案 0 :(得分:3)
https://vuejs.org/2016/02/06/common-gotchas/#Why-does-data-need-to-be-a-function
为什么数据必须是一个函数?
在基本示例中,我们将
data
直接声明为普通对象。这是因为我们只使用new Vue()
创建了一个实例。但是,在定义组件时,必须将data
声明为返回初始数据对象的函数。为什么?因为将使用相同的定义创建许多实例。如果我们仍然使用data
的普通对象,那么在所有创建的实例中,将通过引用共享该对象!通过提供data
函数,每次创建新实例时,我们都可以简单地调用它来返回初始数据的新副本。