Когда я начал с Vue.js, я прочитал о случае, когда вы возвращаете свойство данных с возвратом, а иногда и без него. Я больше не могу найти эту статью, почему я спрашиваю здесь.
То, как я использую его сегодня
data: function () {
return {
myData : "data"
}
},
Но то, что я вижу в документации очень часто - больше не знаю разницы:
data: {
myData: "data"
},
https://vuejs.org/2016/02/06/common-gotchas/#Why-does-data-need-to-be-a-function
Почему данные должны быть функцией?
В основных примерах мы объявляем
data
непосредственно как простой объект. Это связано с тем, что мы создаем только один экземпляр сnew Vue()
. Однако при определении компонентаdata
должны быть объявлены как функция, возвращающая исходный объект данных. Зачем? Потому что будет много экземпляров, созданных с использованием того же определения. Если мы по-прежнему используем простой объект дляdata
, этот же объект будет разделяться ссылкой по всему созданному экземпляру! Предоставляя функциюdata
, каждый раз, когда создается новый экземпляр, мы можем просто вызвать его, чтобы вернуть новую копию исходных данных.