watch里面的deep和immediate作用及說明
watch里面的deep和immediate作用
先看下問題
faterVisible:這個是父組件中傳值到子組件中的監(jiān)聽父組件的打開狀態(tài)的值
首次父組件打開時,沒有加immediate時,不會走對應(yīng)的方法,第二次打開時才會執(zhí)行
于是,我加了immediate。。。這樣問題就解決了呢
watch屬性deep和immediate區(qū)別
deep
:默認值是 false,代表是否深度監(jiān)聽。immediate
:true代表如果在 wacth 里聲明了之后,就會立即先去執(zhí)行里面的handler方法,如果為 false就跟我們以前的效果一樣,不會在綁定的時候就執(zhí)行。
watch中的immediate、handler和deep屬性
immediate屬性
使用watch時有一個特點,就是當(dāng)值第一次綁定時,不會執(zhí)行監(jiān)聽函數(shù),只有值發(fā)生改變時才會執(zhí)行。
如果我們需要在最初綁定值的時候也執(zhí)行函數(shù),則就需要用到immediate屬性。
handler屬性
watch中需要具體執(zhí)行的方法
deep屬性
data() { return { obj: { 'name': "超級無敵暴龍戰(zhàn)士", 'age': 999 }, } }, watch: { obj: { // 執(zhí)行方法 handler(oldValue,newVal) { console.log(oldValue) console.log(newValue) }, deep: true, // 深度監(jiān)聽 immediate: true // 第一次改變就執(zhí)行 } // 如果只需要監(jiān)聽對象中的一個屬性值,則可以做以下優(yōu)化:使用字符串的形式監(jiān)聽對象屬性: 'obj.name': { // 執(zhí)行方法 handler(oldValue,newVal) { console.log(oldValue) console.log(newValue) }, deep: true, // 深度監(jiān)聽 immediate: true // 第一次改變就執(zhí)行 } }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue中如何使用echarts動態(tài)渲染數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于vue中如何使用echarts動態(tài)渲染數(shù)據(jù)的相關(guān)資料,echarts是一款基于JavaScript的開源可視化圖表庫,它通過簡單的配置即可實現(xiàn)各種各樣的可視化效果,需要的朋友可以參考下2023-11-11基于Vue2x實現(xiàn)響應(yīng)式自適應(yīng)輪播組件插件VueSliderShow功能
本文講述的是從開發(fā)一款基于Vue2x的響應(yīng)式自適應(yīng)輪播組件插件的一個全過程,包含發(fā)布到npm,構(gòu)建自己的npm包,供下載安裝使用的技巧,非常不錯,具有一定的參考借鑒價值,感興趣的朋友跟隨腳本之家小編一起看看吧2018-05-05vue項目如何實現(xiàn)ip和localhost同時訪問
這篇文章主要介紹了vue項目如何實現(xiàn)ip和localhost同時訪問,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10