Vuex異步請求數據通過computed計算屬性值


問題描述:

使用Vuex管理數據時,在組件內使用$emit分發事件后,獲取回來的數據要自動更新到該組件內,需要使用computed來計算更新。

一開始嘗試使用賦值給data的方法,后來發現重新發起ajax請求數據后無法更新新數據。

因為data屬性只是在組件實例化時賦值一次,依賴發生變化時不會更新,想要使用data來獲取computed同樣的效果可以對data的字段進行watch。

而計算屬性是基於它的依賴緩存的。計算屬性在它的相關依賴發生改變時會重新取值,所以當ajax請求回來的數據發生變化時,計算屬性的值會進行更新,相關的模板引用也會重新渲染。

相比較而言使用computed更方便,如下是在實際應用中要不斷更新的字段,this.$store.state.templateStorage.recommendTpl 是由ajax重新獲取的數據。

computed: {
      recommendTpl () {
        return this.$store.state.templateStorage.recommendTpl;
      }
    },

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM