vue组件中为何data必须是一个函数()

js中,正常的data可以直接创建对象,例如data:{msg:"12345"}。然而在vue中,data必须以函数形式创建对象:
官方说法: 一个组件的data选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立拷贝:代码
vue组件中为何data必须是一个函数()
文章图片
【vue组件中为何data必须是一个函数()】主要是因为data如果像一般的创建对象一样,都是在一段相同内存注册,组件是要被复用的,一旦改变data,所有引用了组件的都要改变。函数形式就是每次调用组件时,都会重新声明变量,这样就不会造成错误。

    推荐阅读