代码如下
data() {
returen {
a: this.b,
}
},
props: ['b'],
b是数组,貌似是数组的原因才导致这样的。请问怎么让b一直保留原始值,或者不被改变,或者怎样用一个值保留b刚开始传过来的值。
代码如下
data() {
returen {
a: this.b,
}
},
props: ['b'],
b是数组,貌似是数组的原因才导致这样的。请问怎么让b一直保留原始值,或者不被改变,或者怎样用一个值保留b刚开始传过来的值。
进行对象的深拷贝再赋值,简单的方法是利用JSON对象的parse和stringify方法。
例如:
copyedObj=JSON.parse(JSON.stringify(originObj));
值得注意的是,JSON对象在低版本浏览器中不存在,可能存在兼容问题,可以用相关类库来处理,比如lodash
除了深度拷贝数据外,还有一种方法是一种方法利用computed的计算属性
computed: {
a() {
return this.b;
}
},
props: ['b']
既能避免子组件修改父组件数据,还能保证传入数据变更时,子组件的a也能同步变化。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
对象深拷贝一份再赋值