当前位置:首页 > 日记 > 正文

详解vuex 中的 state 在组件中如何监听

详解vuex 中的 state 在组件中如何监听

前言

不知道大家有没有遇到过这样一种情况? vuex中的state会在某一个组建中使用,而这个状态的初始化是通过异步加载完成的。组件在渲染过程中,获取的state状态为空。也就是说组件在异步完成之前就已经完成渲染了,导致组件的数据没有来得及渲染。

问题举例

举例说明如下:

// topo.vuecreated() {  this.getUserAndSysIcons();},methods: {  getUserAndSysIcons() {    const self = this;    // 用户图标    iconApi.getUserIcons().then(response => {    self.$store.dispatch('setUserIcons', response.data);    });  }}

在topo.vue中created或者mounted完成的时候调用 getUserAndSysIcons() 异步初始化userIcons,方便在其他组件中使用这个数据。

// modifyhost.vuemounted() {  this.userIcons = this.$store.state.topo.userIcons; // 用户图标}

在modifyhost.vue中渲染数据是,需要使用userIcons。在modifyhost.vue组件mounted完成的时候,userIcons数据还没有被初始化。导致modifyhost.vue渲染为空。

思考

想的是,当topo.vue中异步获取userIcons完成的时候,再去将modifyhost.vue组件中的userIcons初始化。这样就会自动改变完成渲染。那么怎么知道异步什么时候完成呢?

于是就想到了vue一个好东西watch监听,监听某一个数据的变化。我们都知道是,很容易监听组件中局部数据的变化。那么,这里怎么去监听state中的变化呢?于是有利用了computed计算属性。具体操作如下:

解决

在computed中写一个计算属性getUserIcons,返回状态管理中的userIcons。然后在watch中监听这个计算属性的变化,对modifyhost.vue中的userIcons重新赋值。

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

最终效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

PS滤镜如何制作彩色玻璃

PS滤镜如何制作彩色玻璃

滤镜,彩色玻璃,电脑软件,PS,   这个教程介绍运用了一系列的滤镜制作玻璃网效果,不过用到的滤镜都是平时非常常用的,如果我们平时多细心一点,也可以用这些滤镜制作更加丰富的创意图形!下面跟小编来了解一下如何用PS滤镜制作彩色玻…

微信小程序教程系列之页面跳转和参

微信小程序教程系列之页面跳转和参

页面跳转,参数传递,教程,程序,系列之,关于页面的跳转,微信小程序提供了3种方法:方法一:使用API wx.navigateTo()函数示例:首先先新建一个test页面如何新建页面?请到先阅读下面教程微信小程序的新建页面 —— 微信小程序教程系列(4)index.wxml:在i…

PS背光如何将深色照片变亮

PS背光如何将深色照片变亮

照片,深色,如何将,变亮,电脑软件,有时在照片中,不容易得到一个自己一个意义上的场景,有逆光,避光,不是拿着好看的风景的美景,而是不怜惜,他又拿了什么光,回家后,画出了好黑的森林啊!如果你有这样的图片,不要把它拿出来,试试下面的方法看看它是否改变了…

win10怎么开启移动热点

win10怎么开启移动热点

热点,电脑软件,Windows10如何用无线网卡创建移动热点?由于有些地方没有网络,所以我们需要使用无线网卡进行上网。无论是无线网卡还是USB无线网卡都有承载网络模式,承载网络是指把接收到的无线信号再创建一个Wifi热点给手机使用,这样是不是就方…

插入PPT幻灯片的视频不能播放(解决

插入PPT幻灯片的视频不能播放(解决

解决方案,幻灯片,不能播放,视频,电脑软件,问题: 一位同事用DVD,格式,工厂软件将它转换成万用视频,并将视频插入PPT幻灯片中。当视频被播放时,视频总是无法播放。 答案uff1a 想一想,操作方法,再操作一遍,在PPT点上插入电影和声音文件>电影,找到相关…

PHP简单的获胜算法(示例)

PHP简单的获胜算法(示例)

算法,示例,简单,电脑软件,PHP,这个包遇到这样一个问题,绘制一个概率函数来在线查找信息。它指出,一种以上的方法,我觉得还是比较容易实现句子的功能或一种以上的代码的想法不止一种。 功能get_rand($ proarr){ 结果=; 概率的总概率 $启源= array…

如何使用ps制作印章

如何使用ps制作印章

印章,如何使用,电脑软件,ps,   ps已经成为了绘图高手必会的软件,更被人尊称为神器,可想而知它的功能有多么强大,而对于ps怎么抠公章,这也是很多photoshop用户询问的一个问题。ps抠公章通常会使用色彩范围或者通道来抠公章。下面跟…

利用滤镜为照片添加阳光透射效果

利用滤镜为照片添加阳光透射效果

阳光,照片,滤镜,效果,电脑软件,   今天小编教大家利用滤镜为照片添加阳光透射效果,希望对大家有用!利用滤镜为照片添加阳光透射效果原图最终效果本PS教程使用径向模糊来制作阳光透射效果。制作的时候先把图片的高光部分选区出来…

ps怎么快速合成被树枝缠绕的创意吉

ps怎么快速合成被树枝缠绕的创意吉

创意,树枝,吉他,快速,电脑软件,效果图创意非常不错,画面也合成得很唯美,只是过程有点少,并且素材没有提供。大家可以去网上找类似的素材去合成。最终效果1、画出线稿图。2、加入树林背景。3、调节好树林高度,底部加上土石纹理。树林地面加上青…

MySQL将查询结果导出到CSV实现方法

MySQL将查询结果导出到CSV实现方法

方法,查询结果,导出到,电脑软件,MySQL,为了将MySQL的查询结果导出到CSV,通常使用PHP连接mysql执行查询,并且使用PHP生成返回的查询结果生成CSV格式,然后导出。 但这更麻烦,它需要服务器安装PHP才能实现。 直接使用MySQL导出CSV方法 我们可以…

如何为WPS表使用条件格式WPS条件格

如何为WPS表使用条件格式WPS条件格

条件,格式,何为,电脑软件,WPS,WPS格式条件格式是一个非常强大的功能,但它总是被忽略,所以小编辑器教你如何使用它。 WPS条件格式的使用 打开WPS表,在左上角的WPS表后面点击三角符号,找到在下拉框中,格式,找到格式,条件格式; 使用WPS条件格式1的…

ps滤波器制备发光微球

ps滤波器制备发光微球

滤波器,电脑软件,ps,本教程介绍了PS滤镜制作夜光球的效果,效果非常好。生产步骤也非常详细和困难。有兴趣的朋友可以学习一下。 PS滤光片制作发光效果的方法 首先看看效果: 下面是具体步骤: 1,新的图像,执行_渲染_分层过滤{ }用默认的颜色的…