vue中data需要用方法的方式返回的理解
据目前个人知识的理解,为什么vue中data需要用函数的方式返回的原因,是需要从原型继承入手。
对于对象中的继承;
function Person(){
this.age = '100'
this.data = {
name:'小红'
}
}
function Per(){}
Per.prototype = new Person()
let per = new Per()
let per1 = new Per()
// 原型链继承
// 如果本身在实例化属性存在,就会取实例属性;如果取不到就从原型属性上找
// 所以这个也是在vue当中,data中的属性 必须要用函数返回的方式处理的原因
per1.age = 1000
per1.data.name = '小青'
// 此时打印 per.data.name 会发现值为 小青;
// 但是如果打印per.age的话 会发现还是 100 。这个是因为在对象中的属性会被 继承 ,是因为对象 是引用类型,而字符串和数字是基础类型
假如 vue中如果不是通过函数的方式返回,就会出现,同一个组件的两个实例化组件中,一个data中的值发生改变的时候,另一个也会改变。

浙公网安备 33010602011771号