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

vue中如何正确的使用watch?大佬们有什么好的建议?

vue中如何正确的使用watch?大佬们有什么好的建议?

HUWWW 2019-10-25 22:23:35
在组件传参的时候使用Object.assign,子组件使用watch监听传递过来的参数,参数变化时执行相应事件,并设置了immediate:true,但是现在在页面初次加载的时候事件会执行两次,不知道是什么导致的。//父组件data(){return{params:{a:2b:1}}}//子组件watch:{'params':{handler(){this.getData()//这里执行了两次},deep:true,immediate:true}}解决办法是设置immediate:false但是不知道为什么会导致第一次执行两次
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

immediate:true立即执行了一次watchhandler
随后又触发了一次render,render里会执行Object.assign(),而Object.assign()生成的是一个新对象(地址不一样),watch检测到了改变,所以watchhandler又执行了一次
以上就触发了两次watchhandler。
                            
查看完整回答
反对 回复 2019-10-25
  • 2 回答
  • 0 关注
  • 519 浏览
慕课专栏
更多

添加回答

举报

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