子元件使用watch動態監聽父元件資料並更新
阿新 • • 發佈:2018-12-14
1、問題
父元件的資料變化,子元件也要跟著變化。
一般父向子傳值,子元件通過props接收。比如:
父元件:傳值popInfo
<shop-setting :popInfo="popInfoParent" @popClick="popClick"></shop-setting>
子元件:接收
<script type="text/ecmascript-6">
export default {
props:{
popInfo:Object,
},
}
</script>
但這種方法的侷限性在於,只有在子元件初次載入的時候才接收值,執行之後就不會改變了。
想要實時更新就只能用watch監聽。
2、使用watch實時監聽父元件的資料
這裡以一個物件舉例:
父元件中:
//需要子元件動態監聽的資料
popInfo:{
sTime:'',
location:'',
},
子元件:
<p>{{startTime}}</p>
<p>{{location}}</p>
//接收物件
props:{
popInfo:Object,
},
computed: {
//監聽父元件的數值變化
startTime() {
return this.popInfo.sTime;
},
location(){
return this.popInfo.location;
}
},
watch: {
//時間和定位彈窗
sTime(newValue, oldValue) {
//進行相應操作...
return newValue;
},
location(newValue){
console. log('new:', newValue);
return newValue;
}
},