Vue.js Vue数据功能结构有什么不同

Vue.js Vue数据功能结构有什么不同,vue.js,vuejs2,Vue.js,Vuejs2,我想知道以下格式之间有什么不同,是否有不同的效果: data:function(){ 返回{ 姓名:'约翰', 电话:12345 } } 以下是另一种格式: 数据:{ 姓名:'约翰', 电话:12345 } 使用Vue,您肯定会问自己这样一个问题:“为什么数据必须是一个返回对象的函数,而不仅仅是一个对象?” 特别是考虑到在某些地方,数据不是一个函数,正如您在几个示例中最可能在应用程序组件中看到的那样 解释是当组件被多次使用时,如果它不是一个函数,而是一个常规对象,如下所示: 数据:{ 姓名:'

我想知道以下格式之间有什么不同,是否有不同的效果:

data:function(){
返回{
姓名:'约翰',
电话:12345
}
}
以下是另一种格式:

数据:{
姓名:'约翰',
电话:12345
}

使用Vue,您肯定会问自己这样一个问题:“为什么数据必须是一个返回对象的函数,而不仅仅是一个对象?”

特别是考虑到在某些地方,数据不是一个函数,正如您在几个示例中最可能在应用程序组件中看到的那样

解释是当组件被多次使用时,如果它不是一个函数,而是一个常规对象,如下所示:

数据:{ 姓名:'约翰', 电话:12345 }

然后,由于JavaScript的工作方式,该组件的每个实例都将共享此属性。 在99.9%的情况下,这不是您想要的,相反,您必须做到:

数据:函数(){ 返回{ 姓名:'约翰', 电话:12345 } }


一开始这可能不直观,但一旦你接受了这个解释,并了解到它对你的应用程序有害,并且可能是bug的来源,你就会记得总是使用函数来处理数据。

使用Vue,你肯定会问自己这个问题为什么数据必须是一个返回对象的函数,而不仅仅是一个对象

特别是考虑到在某些地方,数据不是一个函数,正如您在几个示例中最可能在应用程序组件中看到的那样

解释是当组件被多次使用时,如果它不是一个函数,而是一个常规对象,如下所示:

数据:{ 姓名:'约翰', 电话:12345 }

然后,由于JavaScript的工作方式,该组件的每个实例都将共享此属性。 在99.9%的情况下,这不是您想要的,相反,您必须做到:

数据:函数(){ 返回{ 姓名:'约翰', 电话:12345 } }

起初这可能不直观,但一旦您接受了这一解释,并了解到它对您的应用程序有害,并且可能是bug的来源,您将记住始终使用函数来处理数据。

请参见:请参见: