本文由何小蒙原創(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)行對象的操作

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