代码如下
//member代表b值
data() {
return {
members: this.propMembers || [],
}
},
//propMembers代表a值
props: ['propMembers'],
members修改了,props中的propMembers也会跟着改变,这两个值都是数组,貌似是数组引用的是地址问题。但是我想一直保留刚开始传过来的propMembers值该怎么做?
代码如下
//member代表b值
data() {
return {
members: this.propMembers || [],
}
},
//propMembers代表a值
props: ['propMembers'],
members修改了,props中的propMembers也会跟着改变,这两个值都是数组,貌似是数组引用的是地址问题。但是我想一直保留刚开始传过来的propMembers值该怎么做?
数组还有对象 如果用props直接赋值给data的话 修改或改变data会直接影响props里的数据,这时候赋值要用Object.assign()来clone,或者使用jQ的extend 或者lodash的_.clone
13 回答12.8k 阅读
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
7 回答2k 阅读
9 回答1.7k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
5 回答897 阅读
很简单, 既然你都知道数组和对象是应用传递, 父组件给子组件赋值的时候, 传递members的深拷贝对象就可以了, 具体点就是创建个临时对象, 传递给子组件, 伪代码
Object.assign不适用于多层嵌套对象, MDN描述文档
这样做, 子组件props和父组件的变量不是一个引用了