本篇文章从javascript原型链来解释为什么vue中data必须是一个函数
vue组件中的data必须是函数
类比引用数据类型
Object是引用数据类型,如果不是functionf返回,每个数组的data都是内存的同一个地址,一个组件中的数据改变了,其他组件中的数据也会发生改变。
js只有函数构成作用域(注意理解作用域,只有函数的{}构成作用域,对象的{}以及if(){}够不构成作用域),data是一个函数的时,每个组件实例都有自己的作用域,每个实例相互独立,不会相互影响
举例:
如果两个实例同时引用一个对象,那么当你修改其中一个属性的时候,另外一个实例也会跟着改变。
两个实例应该有自己各自的区域才对,需要通过下面的方法进行处理
这样每一个实例的data属性就都是独立的了,不会相互影响了。
vue组件的data必须是函数时js本身的特性带来额,与vue本身的设计没关系。