vue赋值问题,深浅复制问题,一个data赋值给了A,又赋值给B,改变B结果A也改变

做vue的时候经常遇到一个问题,就是接口请求回一个数据,有多个地方需要用到,比如这个数据为

data={

    name:"张三"

}

var a=data;

var b=data;

method:{

fn(){

this.b.name="赵四"

}

}

这时你会发现a和b等显示赵四,这是因为js的浅复制问题,因为a,b都指向同一个源,只复制引用

解决办法:变成深复制

改成 :var a=JSON.parse(JSON.stringify(data))

        var b=JSON.parse(JSON.stringify(data));

即可,对于我们平常开发的普通数据已经够用,对于含有undefinedfunctionsymbol复杂数据会在转换过程中被忽略,

你可能感兴趣的:(vue赋值问题,深浅复制问题,一个data赋值给了A,又赋值给B,改变B结果A也改变)