
let data={a:"张三"};
let vue=new Vue({
el:"#app",
//data:data 不用定义对象的方式
//以定义方法的形式去定义
data(){
return data
}
});
console.log(vue);
console.log(data.a==vue.$data.a);
vue.a="李四";
//此时data.a和vue.a是一个值
console.log(data.a,vue.a);//两个值相同
data.a="王五";
console.log(data.a,vue.a);//两个值 相同
?为什么用函数的形式定义data
data写成一个函数,数据以函数返回值的形式定义,这样每次复用组件的时候,都会返回一份新的data,相当于每个组件实例都有自己的私有空间,它们只负责维护各自的数据不会造成混乱。而写成对象形式,所有的组件实例共用了一个data,这样改一个全都改了可以理解成函数相当于局部作用域,对象相当于全局作用域。