代码如下
//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
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
很简单, 既然你都知道数组和对象是应用传递, 父组件给子组件赋值的时候, 传递members的深拷贝对象就可以了, 具体点就是创建个临时对象, 传递给子组件, 伪代码
Object.assign不适用于多层嵌套对象, MDN描述文档
这样做, 子组件props和父组件的变量不是一个引用了