本文由何小蒙原創(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)
來進行對象的操作
暫時只想到這些原因么鹤,如果有別的原因歡迎討論终娃,如有錯誤請指出謝謝