【VUE】 父組件參數(shù)更新,子組件watch監(jiān)聽參數(shù)不刷新

本文由何小蒙原創(chuàng),如需轉(zhuǎn)載要注明來源。

參數(shù)更新,子組件不刷新不到可能有以下幾個方面的原因

0、沒加watch監(jiān)聽子組件參數(shù)變化
1、箭頭函數(shù)
2、如果監(jiān)聽的參數(shù)為對象,可能因為沒有深度監(jiān)聽

watch:{
  data: {           // data為監(jiān)聽參數(shù)名
      handler: function (val, oldVal) { /* ... */ },
      deep: true
  }
},

3、如果發(fā)現(xiàn)參數(shù)監(jiān)聽偶爾可以,那么查一下子組件是否用了v-if,v-if每次不展示就會銷毀,展示時重新添加dom節(jié)點。

解決方法:把v-if改成v-show,或者可以在監(jiān)聽里面加上immediate: true這項,這樣在首次賦值的時候也會觸發(fā)watch里面的handler事件,寫法如下:
PS: 動態(tài)組件的切換也是同樣銷毀重新添加組件


watch:{
  data: {           // data為監(jiān)聽參數(shù)名
      handler: function (val, oldVal) { /* ... */ },
      immediate: true
  }
},

4、Vue.js 不能檢測到對象屬性的添加或刪除

解決方法:通過this.$set(object, key, value)來進(jìn)行對象的操作

暫時只想到這些原因,如果有別的原因歡迎討論,如有錯誤請指出謝謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容