利用vuex怎么對state進行監(jiān)聽?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到靜寧網站設計與靜寧網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網站制作、成都網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣、空間域名、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋靜寧地區(qū)。
問題舉例
舉例說明如下:
// topo.vue created() { this.getUserAndSysIcons(); }, methods: { getUserAndSysIcons() { const self = this; // 用戶圖標 iconApi.getUserIcons().then(response => { self.$store.dispatch('setUserIcons', response.data); }); } }
在topo.vue中created或者mounted完成的時候調用 getUserAndSysIcons() 異步初始化userIcons,方便在其他組件中使用這個數據。
// modifyhost.vue mounted() { this.userIcons = this.$store.state.topo.userIcons; // 用戶圖標 }
在modifyhost.vue中渲染數據是,需要使用userIcons。在modifyhost.vue組件mounted完成的時候,userIcons數據還沒有被初始化。導致modifyhost.vue渲染為空。
思考
想的是,當topo.vue中異步獲取userIcons完成的時候,再去將modifyhost.vue組件中的userIcons初始化。這樣就會自動改變完成渲染。那么怎么知道異步什么時候完成呢?
于是就想到了vue一個好東西watch監(jiān)聽,監(jiān)聽某一個數據的變化。我們都知道是,很容易監(jiān)聽組件中局部數據的變化。那么,這里怎么去監(jiān)聽state中的變化呢?于是有利用了computed計算屬性。具體操作如下:
解決
在computed中寫一個計算屬性getUserIcons,返回狀態(tài)管理中的userIcons。然后在watch中監(jiān)聽這個計算屬性的變化,對modifyhost.vue中的userIcons重新賦值。
computed: { getUserIcons() { return this.$store.state.topo.userIcons; } }, watch: { getUserIcons(val) { this.userIcons = val; } }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯行業(yè)資訊頻道,感謝您對創(chuàng)新互聯的支持。