一句话总结:
因为组件复用问题要区分作用域
首先我们做一个类比
我们定义一个对象,再直接赋值给其他变量,我们只要改变了一个变量的值,那么其他变量的值也会相应改变,因为这几个变量都指向的同一个地址
那么我们使用函数调用呢
对于三个不同的变量 p3,p4,p5进行赋值,并且都是调用方法 person1,也就是说创建了三个不一样的实例,所以返回的此方法的值也就赋值给了三个不同的地址,因此这三个变量的内存地址是不同的,改变其中一个另外两个也不会改变
在vue 中,data 如果是一个对象,里面存放着很多数据 ,都是指向同一个地址,如果在vue实例中多次 调用这一个组件,那么只要其中一个组件改变daga 中的值之后,那就会其他的组件造成干扰。如果我们使用函数返回一个对象,在创建不同组件的时候,会 return出不同地址的对象,就不会存在这个问题啦。