Vue3使用setup監(jiān)聽props實現(xiàn)方法詳解
背景描述
子組件展示父組件傳來的參數(shù),展示的信息隨著父組件上tab的切換動態(tài)更新。
一開始的想法是單獨監(jiān)聽這個傳遞的參數(shù),但看了VUE3的文檔之后,似乎對參數(shù)的監(jiān)聽必須精確到屬性。例如參數(shù)為
{
name: 'Doctor',
gender: 'Timelord'
}需要在子組件的watch中寫明監(jiān)聽的是name還是gender。
該參數(shù)中有很多可能會改變的屬性,一一監(jiān)聽過于麻煩。所以改變思路,使用監(jiān)聽props來獲取所有所有傳參。
實現(xiàn)方法
在父組件中,用于傳遞給子組件的參數(shù)必須為響應式(eg. reactive),否則子組件在監(jiān)聽時不會監(jiān)測到變換,watch永遠不會生效
immediate是立即開始監(jiān)聽,在頁面首次渲染時可能為顯示為undefined,如果watch的變化需要手動觸發(fā),不需要開啟
deep默認開啟,可以忽略(參數(shù)為reactive,會默認開啟deep,如果是ref,則不會默認開啟deep)
// 父組件
<script>
export default {
setup() {
let traveller = reactive({
name: 'Doctor',
gender: 'Timelord'
})
}
}
</script>// 子組件
<script>
export default {
props: {
traveller: {
type: Object
}
}
setup(props) {
watch(
props,
(old, newProps) => {
console.log('=======', newProps); //這里看到新值
},
// {
// immediate: true,
// deep: true
// }
)
}
}
</script>以上就是Vue3使用setup監(jiān)聽props實現(xiàn)方法詳解的詳細內(nèi)容,更多關于Vue3 setup監(jiān)聽props的資料請關注腳本之家其它相關文章!
相關文章
在vue項目創(chuàng)建的后初始化首次使用stylus安裝方法分享
下面小編就為大家分享一篇在vue項目創(chuàng)建的后初始化首次使用stylus安裝方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
vue.js+Element實現(xiàn)表格里的增刪改查
本篇文章主要介紹了vue.js+Element實現(xiàn)增刪改查,具有一定的參考價值,有興趣的可以了解一下。2017-01-01

