我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vuex无法观察到值变化如何解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vuex无法观察到值变化如何解决

这篇文章主要介绍“Vuex无法观察到值变化如何解决”,在日常操作中,相信很多人在Vuex无法观察到值变化如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vuex无法观察到值变化如何解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在跨越主路由视图时,由于Vuex的状态值一直存储在内存中,所以在组件视图重新载入时,可能会出现组件无法检测到状态值的变化,从而导致业务逻辑出现错误。

假定通用头部组件有一个全局任务状态值,其他的组件都要根据此任务值进行更新,更可能出现的情况是,任务状态值是异步加载完成的,于是需要如此编写业务逻辑:

computed : { task () {  return this.$store.state.task } },watch : { task : {   deep: true,   handler (val) {    // 由于是异步载入,所以只能在状态值的变化时执行渲染操作    // 绝不可在mounted中执行render方法    this.render(val)   } } }

但是,由于上面的原因,第一次载入视图时,因为Vuex的状态值还没有存储在内存中,所以渲染正常。发生了视图切换后,虽然也重新载入了任务状态值,但由于task并没有发生变化,所以render方法不会被调用,于是组件无法完成渲染过程。

解决的办法很简单,强行触发task值发生改变,方法是定义一个时间戳,如果觉得在时间戳的粒度仍然太粗,还可以组合使用随机数,如下:

watch: { taskId : {   handler (val) {    // 从v-model获取到的新值    let taskId = this.taskId    // 提交新值变化    this.$store.commit(TASK_ID,     {     id : taskId,     // 添加时间戳     time : Date.now().valueOf(),     // 添加随机数     random : Math.random()    })   } }}

经过上面的处理,只要发生taskId的赋值现象,那么一定会触发Vuex的状态变化,所以每次组件载入时或taskId的值发生变化时,render方法就一定会被执行。

到此,关于“Vuex无法观察到值变化如何解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vuex无法观察到值变化如何解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vuex无法观察到值变化如何解决

这篇文章主要介绍“Vuex无法观察到值变化如何解决”,在日常操作中,相信很多人在Vuex无法观察到值变化如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vuex无法观察到值变化如何解决”的疑惑有所帮助!
2023-07-04

vue3无法安装vuex如何解决

本文小编为大家详细介绍“vue3无法安装vuex如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3无法安装vuex如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue3无法安装vuex的解决
2023-07-04

电脑无法观看视频如何解决

如果您的电脑无法观看视频,您可以尝试以下解决方法:1. 更新浏览器:您可以尝试更新您使用的浏览器,因为较新版本的浏览器通常支持更多的视频格式和功能。2. 安装更新的视频播放器:您可以尝试安装或更新您的视频播放器软件,如Adobe Flash
2023-09-07

win7无法连接到system如何解决

如果Windows 7无法连接到System,可以尝试以下解决方法:1. 检查网络连接:确保你的计算机已连接到正常的网络。可以尝试重新连接或重启路由器和调制解调器。2. 检查IP地址和DNS设置:确保你的计算机的IP地址和DNS设置是正确的
2023-09-02

windows无法连接到wifi如何解决

这篇文章主要介绍了windows无法连接到wifi如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇windows无法连接到wifi如何解决文章都会有所收获,下面我们一起来看看吧。方法一: 1、首先右击桌面
2023-07-02

Sql2008R2无法连接到WMI如何解决

本篇内容主要讲解“Sql2008R2无法连接到WMI如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Sql2008R2无法连接到WMI如何解决”吧!Sql2008R2无法连接到WMI解决办
2023-07-04

plsql无法找到oci dll如何解决

在解决 PL/SQL 无法找到 OCI DLL 的问题之前,首先需要确保以下几个步骤已经完成:确认你的计算机上已经安装了 Oracle 客户端软件。OCI DLL 文件通常位于 Oracle 客户端安装目录下的 `bin` 文件夹中。检查环
plsql无法找到oci dll如何解决
2023-10-28

word无法初始化visual如何解决

这个问题可能是由于缺少必要的依赖项或出现了一些配置问题引起的。以下是一些可能的解决方法:1. 确保已正确安装了Microsoft Visual Studio(适用于C++开发)。2. 检查是否已安装了所需的C++编译器。可以在Visual
2023-10-09

eclipse无法找到ant文件如何解决

有以下几种可能的解决方法:1. 确保Ant已经正确安装并配置:在Eclipse中,打开“Windows”菜单,选择“Preferences”,然后选择“Ant”选项。确保“Ant Home”字段指向正确的Ant安装目录。2. 检查项目的构建
2023-09-22

eclipse无法找到共享库如何解决

当Eclipse无法找到共享库时,可能是由于以下几个原因导致的:1. 缺少依赖库:检查Eclipse所需的共享库是否存在并完整。可以尝试重新安装Eclipse或安装相关依赖库。2. 环境变量配置错误:检查操作系统的环境变量是否正确设置。确保
2023-09-23

mfc控件无法添加变量如何解决

如果MFC控件无法添加变量,可能是因为以下原因:1. 控件的类没有正确继承自MFC的控件类。确保你的控件类继承自适当的基类,比如CButton、CEdit等。2. 控件没有声明为成员变量。在你的对话框类(或其他包含控件的类)中,将控件声明为
2023-09-07

win101607系统无法改变更新如何解决

这篇文章主要讲解了“win101607系统无法改变更新如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win101607系统无法改变更新如何解决”吧!1、在Windows10系统,在打
2023-07-01

电脑无法连接到internet如何解决

这篇“电脑无法连接到internet如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“电脑无法连接到internet如何
2023-07-01

如何解决z-index为负值的元素无法点击到的问题

这篇文章将为大家详细讲解有关如何解决z-index为负值的元素无法点击到的问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。最近做背投广告,因为默认页面没有设置z-index,发现如果将z-
2023-06-08

@NonNull导致无法序列化如何解决

这篇文章主要介绍“@NonNull导致无法序列化如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“@NonNull导致无法序列化如何解决”文章能帮助大家解决问题。@NonNull导致无法序列化的
2023-07-04

windows无法格式化u盘如何解决

如果Windows无法格式化U盘,可能是因为以下几个原因:1. U盘有物理故障:检查U盘是否有损坏或者松动的部件。尝试将U盘插入其他计算机上进行格式化,如果其他计算机也无法格式化,则可能是U盘本身出现了问题,需要更换新的U盘。2. U盘被写
2023-09-07

win7无法格式化U盘如何解决

这篇文章主要介绍了win7无法格式化U盘如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win7无法格式化U盘如何解决文章都会有所收获,下面我们一起来看看吧。第一种:对U盘进行查杀病毒处理:需要对U盘查杀
2023-06-27

windows无法完成格式化如何解决

这篇文章主要介绍“windows无法完成格式化如何解决”,在日常操作中,相信很多人在windows无法完成格式化如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”windows无法完成格式化如何解决”的疑
2023-07-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录