【VUE】 父组件参数更新,子组件watch监听参数不刷新 - Go语言中文社区

【VUE】 父组件参数更新,子组件watch监听参数不刷新


参数更新,子组件不刷新不到可能有以下几个方面的原因

0、没加watch监听子组件参数变化

1、箭头函数

2、如果监听的参数为对象,可能因为没有深度监听,

选项:deep,为了发现对象内部值的变化,可以在选项参数中指定 deep: true 。注意监听数组的变动不需要这么做。


watch:{
  data: {           // data为监听参数名
      handler: function (val, oldVal) { /* ... */ },
      deep: true
  }
},

3、如果发现参数监听偶尔可以,那么查一下子组件是否用了v-ifv-if每次不展示就会销毁,展示时重新添加dom节点。

解决方法:把v-if改成v-show,或者可以在监听里面加immediate: true这项在选项参数中指定 immediate: true 将立即以表达式的当前值触发回调,这样在首次赋值的时候也会触发watch里面的handler事件,写法如下:
PS: 动态组件的切换也是同样销毁重新添加组件


watch:{
  data: {           // data为监听参数名
      handler: function (val, oldVal) { /* ... */ },
      immediate: true
  }
},

4、Vue.js 不能检测到对象属性的添加或删除

解决方法:通过this.$set(object, key, value)来进行对象的操作

参考:https://www.jianshu.com/p/4e275abda2a7

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhengyinling/article/details/93485296
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-26 17:11:25
  • 阅读 ( 1065 )
  • 分类:前端

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢