我们知道 Vue中 “茴”字有四种写法 data有两种写法
data() {
return {
msg: '',
xxx:'Hello CSDN'
}
}
data: {
msg:'',
xxx: 'Hello vue!'
}
如果说,我们是在一个html文件中 使用了 script:src
的方法导入了Vue并且实例化它的时候,你使用什么写法都是没有问题的。
但是,如果你的这个文件中注册了一个组件的话,那么这个组件中的data,必须使用函数,而且会有报错,就好像在你使用v-for的时候,还得来个key一样,这是规范。
为什么?
原因我先列举出来:
- 使每个组件闭包
- 容易互相影响
其实就是一个原因,实例化出来的根组件只有一个,你可以将它写成对象,或者是返回一个对象的函数。但是子组件不够健壮,容易在内存的地址中互相影响,就像我们常用的深浅拷贝所能解决的那样。所以为了防止意外的发生,是不被允许在子组件中使用对象来写data。