一个组件被复用多次的话,也就会创建多个实例。本质上,这些实例用的都是同一个构造函数。如果data是对象的话,对象属于引用类型,会影响到所有的实例。所以为了保证组件不同的实例之间data不冲突,data必须是一个函数。
而 new Vue 的实例,是不会被复用的,因此不存在引用对象的问题。
data为对象类型
function Vue() {
this.data= {
name: '张三',
age: '21'
}
}
//创建了一个Vue实例返回给vm,会调用上面的定义的函数,并创建一个对象,该对象中有data属性
let vm =new Vue()
//此时的vm应该是这样的
vm = {
data: {
name: '张三',
age: