为了账号安全,请及时绑定邮箱和手机立即绑定

vue中子组件向父组件传值,会实时更新吗?

vue中子组件向父组件传值,会实时更新吗?

素胚勾勒不出你 2019-05-09 08:36:40
vue项目中遇到这样一个问题:触发子组件的一个事件,事件中emit触发父组件的自定义事件,向父组件发送了一个数组;在父组件中的自定义事件中拿到这个数组之后,赋值给定义在data中的一个变量,然后用这个变量去渲染了一个列表;整个代码中从头到尾子组件只emit了一次,也就是说父组件只接受了子组件的数组一次,拿到后也只给data赋值了一次;但问题来了,我修改子组件的数组内容(push,splice),父组件中的列表也跟着变了,这什么情况?然后我写了个demo,发现如果传的是个数值或字符串,在子组件中修改,父组件中的内容不会变...有遇到此类问题的人吗?求解答
查看完整描述

2 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

因为数组是引用类型,数值or字符串是基本类型,引用类型的更改会引起连锁反应,你如果实在不想改的话,就在emit的时候深拷贝一份给父组件
比如数组为arr,
emit的时候不直接传递arr,而是传递JSON.parse(JSON.stringify(arr))这个值,就可以了,当然实现深拷贝的方法有很多种,这只是其中一种
                            
查看完整回答
反对 回复 2019-05-09
  • 2 回答
  • 0 关注
  • 1475 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信