最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解vuex 中的 state 在組件中如何監(jiān)聽

 更新時間:2017年05月23日 11:29:48   作者:稀土掘金  
本篇文章主要介紹了詳解vuex 中的 state 在組件中如何監(jiān)聽,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

不知道大家有沒有遇到過這樣一種情況? vuex中的state會在某一個組建中使用,而這個狀態(tài)的初始化是通過異步加載完成的。組件在渲染過程中,獲取的state狀態(tài)為空。也就是說組件在異步完成之前就已經(jīng)完成渲染了,導(dǎo)致組件的數(shù)據(jù)沒有來得及渲染。

問題舉例

舉例說明如下:

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

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

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

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


思考

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

于是就想到了vue一個好東西watch監(jiān)聽,監(jiān)聽某一個數(shù)據(jù)的變化。我們都知道是,很容易監(jiān)聽組件中局部數(shù)據(jù)的變化。那么,這里怎么去監(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;
  }
}

最終效果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 探索Vue如何高效構(gòu)建可復(fù)用組件

    探索Vue如何高效構(gòu)建可復(fù)用組件

    Vue.js作為現(xiàn)代前端開發(fā)中的佼佼者,其組件系統(tǒng)是構(gòu)建高效、靈活和可擴(kuò)展用戶界面的關(guān)鍵,本文帶大家深度探索?Vue.js?組件的核心奧義,感興趣的小伙伴可以了解下
    2024-12-12
  • Vue.js 點擊按鈕顯示/隱藏內(nèi)容的實例代碼

    Vue.js 點擊按鈕顯示/隱藏內(nèi)容的實例代碼

    下面小編就為大家分享一篇Vue.js 點擊按鈕顯示/隱藏內(nèi)容的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 快速解決element的autofocus失效問題

    快速解決element的autofocus失效問題

    這篇文章主要介紹了快速解決element的autofocus失效問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue刷新頁面時去閃爍提升用戶體驗效果的實現(xiàn)方法

    vue刷新頁面時去閃爍提升用戶體驗效果的實現(xiàn)方法

    這篇文章主要介紹了vue刷新頁面時去閃爍提升體驗方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • 在vue中獲取dom元素內(nèi)容的方法

    在vue中獲取dom元素內(nèi)容的方法

    本篇文章主要介紹了在vue中獲取dom元素內(nèi)容的方法,可以通過給標(biāo)簽加ref屬性,這里整理了詳細(xì)的代碼,有興趣的可以了解一下
    2017-07-07
  • Vue3中Slot插槽透傳,二次封裝Arco的table組件詳解

    Vue3中Slot插槽透傳,二次封裝Arco的table組件詳解

    這篇文章主要介紹了Vue3中Slot插槽透傳,二次封裝Arco的table組件,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 詳解vue中v-model的實現(xiàn)原理

    詳解vue中v-model的實現(xiàn)原理

    v-model可以實現(xiàn)數(shù)據(jù)的雙向綁定,也是vue的最突出的優(yōu)勢,其實 v-model 實際上是一個語法糖,本文將給大家介紹一下vue中v-model的實現(xiàn)原理,文中有相關(guān)的代碼供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • 解決vue2使用腳手架配置prettier報錯prettier/prettier:context.getPhysicalFilename is not a function

    解決vue2使用腳手架配置prettier報錯prettier/prettier:context.getPhysical

    這篇文章主要介紹了解決vue2使用腳手架配置prettier報錯prettier/prettier:context.getPhysicalFilename is not a function問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue框架和前后端開發(fā)詳解

    Vue框架和前后端開發(fā)詳解

    這篇文章主要為大家介紹了Vue框架和前后端開發(fā),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • vue2+elementui進(jìn)行hover提示的使用

    vue2+elementui進(jìn)行hover提示的使用

    本文主要介紹了vue2+elementui進(jìn)行hover提示的使用,主要分為外部和內(nèi)部,具有一定的參考價值,感興趣的可以了解一下
    2021-11-11

最新評論

湘潭市| 松滋市| 永济市| 忻州市| 聊城市| 西充县| 那曲县| 富顺县| 子洲县| 霍州市| 南充市| 普定县| 平武县| 锦州市| 泾川县| 余干县| 乌兰浩特市| 荥经县| 湖州市| 磴口县| 南溪县| 安福县| 盐池县| 颍上县| 永济市| 许昌县| 甘谷县| 泰州市| 天峨县| 华亭县| 石家庄市| 通州区| 沅陵县| 宜宾市| 喜德县| 石泉县| 南木林县| 嘉义市| 交城县| 哈密市| 阿拉善左旗|