一次Vue中computed沒有觸發(fā)的原因以及排查經(jīng)歷
computed沒有觸發(fā)的原因排查經(jīng)歷
vue中computed計算屬性可以用來綁定動態(tài)變量,而且它可以實時刷新,并且也可以在watch中監(jiān)控,所以本人很喜歡用這個東西,一般把需要隨data中變量一起變化的屬性全部放在這里面,data中只定義互相獨立互相不影響的變量,這樣可以極大地減少重復(fù)變量的定義,使代碼結(jié)構(gòu)清晰,也便于排查錯誤。
最近出現(xiàn)了一個問題
就是我在computed中定義的一個動態(tài)變量沒有在相關(guān)屬性發(fā)生變化后觸發(fā)更新。
代碼如下:
data(){
return {
model:{
name:"test"
}
}
}
computed:{
lonexist:function(){
return this.model.lon!=null;
}
}
method:{
changelon(){
this.model.lon="123";
}
}
以上只是簡化代碼,目的是說明問題,然后我在一個button的click事件中綁定changelon方法,點擊button后lonexist計算屬性并沒有被觸發(fā)。
原因是
model初始化時沒有這個屬性,解決方法是在model的初始化方法中添加這個屬性就可以了:
data(){
return {
model:{
name:"test",
lon:null
}
}
}
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue監(jiān)聽滾動事件實現(xiàn)滾動監(jiān)聽
本文主要介紹了vue監(jiān)聽滾動事件實現(xiàn)滾動監(jiān)聽的相關(guān)資料。具有很好的參考價值。下面跟著小編一起來看下吧2017-04-04
Vue3頁面數(shù)據(jù)加載延遲的問題分析和解決方法
在?Vue?3?的項目中,當(dāng)我們使用響應(yīng)式數(shù)據(jù)(如?ref?或?computed)來管理頁面狀態(tài)時,可能會遇到由于接口數(shù)據(jù)加載延遲,導(dǎo)致頁面初始渲染時數(shù)據(jù)尚未獲取完成的問題,本文針對此問題簡單分析了原因和解決方法,需要的朋友可以參考下2024-11-11
Vue結(jié)合ElementUI實現(xiàn)數(shù)據(jù)請求和頁面跳轉(zhuǎn)功能(最新推薦)
我們在Proflie.vue實例中,有beforeRouteEnter、beforeRouteLeave兩個函數(shù)分別是進入路由之前和離開路由之后,我們可以在這兩個函數(shù)之內(nèi)進行數(shù)據(jù)的請求,下面給大家分享Vue結(jié)合ElementUI實現(xiàn)數(shù)據(jù)請求和頁面跳轉(zhuǎn)功能,感興趣的朋友一起看看吧2024-05-05
解決vue-cli項目sourcemap因為文件重名導(dǎo)致的文件定位映射錯誤問題
這篇文章主要介紹了解決vue-cli項目sourcemap因為文件重名導(dǎo)致的文件定位映射錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
Vue監(jiān)聽一個數(shù)組id是否與另一個數(shù)組id相同的方法
今天小編就為大家分享一篇Vue監(jiān)聽一個數(shù)組id是否與另一個數(shù)組id相同的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09

