Vue通過v-modal實現子組件通訊
1、在props設置屬性value
props: {
value: {
type: Object,
default: {}
}
}
1、設置data數據,接收value,在mounted或created中賦值
data(){
return {
valueObj:{}
}
},
mounted() {
this.valueObj = this.value;
},
3、監聽變化,監聽value,根據實際情況使用,否則會循環監聽導致卡死;監聽數據valueObj編號并通知父組件
watch: {
//監聽子組件
value: {
immediate: true, // 第一次數據傳入后立即監聽
deep: true, // 深度監聽
handler(val, oval) {
//處理邏輯,更新子組件
},
},
//監聽屬性變化
valueObj: {
immediate: true, // 第一次數據傳入后立即監聽
deep: true, // 深度監聽
handler(val, oval) {
if (val != oval) {
this.$emit('input', val);
}
},
},
}
4、注意事項:父組件盡量使用v-if使子組件保持最新數據,使數據一致;
5、注意事項:子組件調用父組件事件后,可能數據未更新至父組件,父組件事件中可使用this.$nextTick方法。
6、注意事項:方法命名規則,盡量使用獨特的命名,避免使用保留字;否則會導致莫名其妙,并無法找到原因的問題。

浙公網安備 33010602011771號