美文网首页
【VUE】 父组件参数更新,子组件watch监听参数不刷新

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

作者: 何小蒙 | 来源:发表于2019-03-26 10:52 被阅读0次

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

    0、没加watch监听子组件参数变化
    1、箭头函数
    2、如果监听的参数为对象,可能因为没有深度监听
    
    watch:{
      data: {           // data为监听参数名
          handler: function (val, oldVal) { /* ... */ },
          deep: true
      }
    },
    
    
    3、如果发现参数监听偶尔可以,那么查一下子组件是否用了v-ifv-if每次不展示就会销毁,展示时重新添加dom节点。

    解决方法:把v-if改成v-show,或者可以在监听里面加上immediate: true这项,这样在首次赋值的时候也会触发watch里面的handler事件,写法如下:
    PS: 动态组件的切换也是同样销毁重新添加组件

    
    watch:{
      data: {           // data为监听参数名
          handler: function (val, oldVal) { /* ... */ },
          immediate: true
      }
    },
    
    
    4、Vue.js 不能检测到对象属性的添加或删除

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

    暂时只想到这些原因,如果有别的原因欢迎讨论,如有错误请指出谢谢

    相关文章

      网友评论

          本文标题:【VUE】 父组件参数更新,子组件watch监听参数不刷新

          本文链接:https://www.haomeiwen.com/subject/ezzwvqtx.html