var a = {
names: "张三",
};
function b() {
return { names: "李四" };
}
var c = a;
var d = a;
console.log("one", c, d);
c.names = "123";
console.log("one", c, d);
var e = b();
var f = b();
console.log("two", e, f);
e.names = "456";
console.log("two", e, f);
结果:
one { names: '张三' } { names: '张三' } // 对象变量更改前
one { names: '123' } { names: '123' } // 对象变量更改后, 数据之间会相互影响
two { names: '李四' } { names: '李四' } // 对象函数更改前
two { names: '456' } { names: '李四' } // 对象函数更改后, 数据之间不相互影响
// Vue data 为什么要返回一个函数 ?
// 解答:
// Vue 是组件其本质也是一个对象, 当组件被多次导入使用(引用) 时相当于对象的赋值操作, 对象赋值时都是赋值的引用而非新的对象,
// 当多个引用 操作组件内部的 data 时, 由于都是使用的同一个组件的引用, 所以内部的data也都是同一个, 不管哪个引用先加载, 后面的引用加载后一旦修改了data, 先前引用设置好的 data 数据, 就会被覆盖成新的数据
// 故儿需要使用 函数来返回 data , 由于函数也是对象的一种, 函数在运行时返回的 data 是一个新的对象, 所以多个引用之间的 data 不会相互影响
Vue 组件 data 为什么要返回一个函数 ?
最新推荐文章于 2024-01-23 11:05:33 发布