真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Vuex無法觀察到值變化怎么辦-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Vuex無法觀察到值變化怎么辦”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“Vuex無法觀察到值變化怎么辦”這篇文章吧。

創(chuàng)新互聯(lián)建站成都網(wǎng)站建設按需規(guī)劃網(wǎng)站,是成都網(wǎng)站營銷推廣公司,為成都衛(wèi)生間隔斷提供網(wǎng)站建設服務,有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設計服務:原型圖制作、網(wǎng)站創(chuàng)意設計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站維護熱線:028-86922220

在跨越主路由視圖時,由于Vuex的狀態(tài)值一直存儲在內(nèi)存中,所以在組件視圖重新載入時,可能會出現(xiàn)組件無法檢測到狀態(tài)值的變化,從而導致業(yè)務邏輯出現(xiàn)錯誤。

假定通用頭部組件有一個全局任務狀態(tài)值,其他的組件都要根據(jù)此任務值進行更新,更可能出現(xiàn)的情況是,任務狀態(tài)值是異步加載完成的,于是需要如此編寫業(yè)務邏輯:

computed : {
 task () {
  return this.$store.state.task
 } 
},
watch : {
 task : {
   deep: true,
   handler (val) {
    // 由于是異步載入,所以只能在狀態(tài)值的變化時執(zhí)行渲染操作
    // 絕不可在mounted中執(zhí)行render方法
    this.render(val)
   }
 } 
}

但是,由于上面的原因,第一次載入視圖時,因為Vuex的狀態(tài)值還沒有存儲在內(nèi)存中,所以渲染正常。發(fā)生了視圖切換后,雖然也重新載入了任務狀態(tài)值,但由于task并沒有發(fā)生變化,所以render方法不會被調(diào)用,于是組件無法完成渲染過程。

解決的辦法很簡單,強行觸發(fā)task值發(fā)生改變,方法是定義一個時間戳,如果覺得在時間戳的粒度仍然太粗,還可以組合使用隨機數(shù),如下:

watch: {
 taskId : {
   handler (val) {
    // 從v-model獲取到的新值
    let taskId = this.taskId
    // 提交新值變化
    this.$store.commit(TASK_ID, 
    {
     id : taskId,
     // 添加時間戳
     time : Date.now().valueOf(),
     // 添加隨機數(shù)
     random : Math.random()
    })
   }
 }
}

經(jīng)過上面的處理,只要發(fā)生taskId的賦值現(xiàn)象,那么一定會觸發(fā)Vuex的狀態(tài)變化,所以每次組件載入時或taskId的值發(fā)生變化時,render方法就一定會被執(zhí)行。

以上是“Vuex無法觀察到值變化怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網(wǎng)站標題:Vuex無法觀察到值變化怎么辦-創(chuàng)新互聯(lián)
URL分享:http://weahome.cn/article/dgihgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部