利用vuex怎么對(duì)state進(jìn)行監(jiān)聽(tīng)

利用vuex怎么對(duì)state進(jìn)行監(jiān)聽(tīng)?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到靜寧網(wǎng)站設(shè)計(jì)與靜寧網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋靜寧地區(qū)。

問(wèn)題舉例

舉例說(shuō)明如下:

// topo.vue
created() {
  this.getUserAndSysIcons();
},
methods: {
  getUserAndSysIcons() {
    const self = this;
    // 用戶(hù)圖標(biāo)
    iconApi.getUserIcons().then(response => {
    self.$store.dispatch('setUserIcons', response.data);
    });
  }
}

在topo.vue中created或者mounted完成的時(shí)候調(diào)用 getUserAndSysIcons() 異步初始化userIcons,方便在其他組件中使用這個(gè)數(shù)據(jù)。

// modifyhost.vue
mounted() {
  this.userIcons = this.$store.state.topo.userIcons; // 用戶(hù)圖標(biāo)
}

在modifyhost.vue中渲染數(shù)據(jù)是,需要使用userIcons。在modifyhost.vue組件mounted完成的時(shí)候,userIcons數(shù)據(jù)還沒(méi)有被初始化。導(dǎo)致modifyhost.vue渲染為空。

思考

想的是,當(dāng)topo.vue中異步獲取userIcons完成的時(shí)候,再去將modifyhost.vue組件中的userIcons初始化。這樣就會(huì)自動(dòng)改變完成渲染。那么怎么知道異步什么時(shí)候完成呢?

于是就想到了vue一個(gè)好東西watch監(jiān)聽(tīng),監(jiān)聽(tīng)某一個(gè)數(shù)據(jù)的變化。我們都知道是,很容易監(jiān)聽(tīng)組件中局部數(shù)據(jù)的變化。那么,這里怎么去監(jiān)聽(tīng)state中的變化呢?于是有利用了computed計(jì)算屬性。具體操作如下:

解決

在computed中寫(xiě)一個(gè)計(jì)算屬性getUserIcons,返回狀態(tài)管理中的userIcons。然后在watch中監(jiān)聽(tīng)這個(gè)計(jì)算屬性的變化,對(duì)modifyhost.vue中的userIcons重新賦值。

computed: {
  getUserIcons() {
    return this.$store.state.topo.userIcons;
  }
},
watch: {
  getUserIcons(val) {
    this.userIcons = val;
  }
}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

文章標(biāo)題:利用vuex怎么對(duì)state進(jìn)行監(jiān)聽(tīng)
轉(zhuǎn)載源于:http://muchs.cn/article38/ghgosp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷(xiāo)推廣定制網(wǎng)站、小程序開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司