Vue修改数据页面不更新的问题解决

2023-11-04

第一种场景:动态给对象新增属性或者删除属性是不会触发视图刷新的,Vue识别不到:

第二种场景:通过数组下标修改数组中的元素或者手动修改数组的长度,Vue识别不到:

解决方法1:静默刷新(使用v-if的特性)

在修改值之后将元素销毁,然后在修改后的下一次DOM渲染完成时再显示出来,这样就会触发组件重新加载data的数据进行渲染,data中被修改的数据才是最新的

解决方法2:Vue.$set(官方推荐)

官方对这个API的解释就是使用这个api修改的数据会为其添加响应式getter和setter让其拥有数据响应的特性

vm.$set(要操作的对象或数组, 要新增或者修改的数组或对象key, 对应的值)

解决方法3: Vue.$forceUpdate(手动强制更新视图)

因为Vue修改数据是异步执行的,所以视图不会立即更新,会等到下一次dom更新循环结束后统一更新发生在这一次循环中修改的数据,然后同步视图更新,所以我们可以修改后自己手动强制更新视图

解决方法4:Object.assign(使用修改栈能触发视图更新的特性,借鉴React的写法)

我们都知道Object.assign能拷贝合成一个新对象,所以我们只需要将要修改的值合并成一个新对象然后赋值给data中的对象或数组,这样栈的指向被修改了.触发视图更新

解决方法5:对于数组还可以使用splice方法(Vue对于数组的操作能识别变化的api包括splice):

this.arr.splice(你要修改的元素索引位置,1,修改后的值)    这是修改操作

示例:修改a

this.obj.splice(0, 1, {
 a: 456
});

this.arr.splice(你要添加到哪个元素的前面就写那个元素的索引+1,0,要添加的值)     这是添加操作

示例:添加b

this.obj.splice(1, 0, {
 b: 456
});

this.arr.splice(你要删除的元素索引,1)   这是删除操作

示例:删除a

this.obj.splice(0, 1);

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue修改数据页面不更新的问题解决 的相关文章

  • Css如何优雅的实现抽奖转盘

    如图 抽奖转盘 可以拆分为几部分 1 底部大圆 2 中间小圆 3 扇形区 4 扇形内部奖品区 5 抽奖按钮 6 点击抽奖按钮时旋转动效及逻辑 这其中 扇形区 以及扇形区内奖品的布局最为关键和麻烦 这个问题解决 剩下的问题 那都不是事儿 那如

随机推荐

  • 10种电脑无法启动故障

    开机自检时出现问题后会出现各种各样的英文短句 短句中包含了非常重要的信息 读懂这些信息可以自己解决一些小问题 可是这些英文难倒了一部分朋友 下面是一些常见的BIOS短句的解释 是我在修电脑时 常出现的短句 大家可以参考一下 1 CMOS b
  • Spring基础知识讲解

    文章目录 Spring是什么 IoC容器与DI DI与IoC的区别 Spring项目的创建 配置maven国内源 创建Spring项目 有关Bean的操作 存储Bean 使用Bean ApplicationContext和BeanFacto
  • mmsegmentation中可视化

    目录 1 tools train py tools dist train sh 2 tools test py 指定输出到 pkl 文件 3 分析日志 绘制分类损失 日志分析 4 Flops Params fps的实现 fps的实现 too
  • 关于实现类按多属性排序的问题(compareTo()函数应用)

    class tongji char zi 字符 int num 出现次数 如上这个类 按照统计个数由多到少输出统计结果 如果统计的个数相同 则按照ASII码由小到大排序输出 1 num大的靠前 2 num 相同情况下 判断字符的ASII码
  • kafka总结概述

    kafka概述 消息中间件对比 特性 ActiveMQ RabbitMQ RocketMQ Kafka 开发语言 java erlang java scala 单机吞吐量 万级 万级 10万级 100万级 时效性 ms us ms ms级以
  • 谷歌开源芯片 180 纳米制造工艺

    谷歌一直在开源芯片方面发力 从跟 SkyWater Technology 的合作开始 SkyWater 为谷歌的开源芯片计划提供了 130nm 工艺的芯片设计 随后把工艺推进到 90nm 制造 为该开源芯片计划加了不少含金量 谷歌与Glob
  • leetcode 347:前K个高频词

    使用python的dict存储 value记录数量 再排序 最后输出 class Solution object def topKFrequent self nums k type nums List int type k int rtyp
  • ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID等错误解决方法

    当遇到ORA 12505 TNS 监听程序当前无法识别连接描述符中所给出的SID等错误需要特别检查如下配置 1 检查数据库客户端 ORACLEHOME client 1 NETWORK ADMIN目录中的tnsnames ora文件看客户端
  • 如何自学Python爬虫? 零基础入门教程

    如何自学Python爬虫 在大家自学爬虫之前要解决两个常见的问题 一是爬虫到底是什么 二是问什么要用Python来做爬虫 爬虫其实就是自动抓取页面信息的网络机器人 至于用Python做爬虫的原因 当然还是为了方便 本文将为大家提供一份详细的
  • Docker笔记1 基础概念和镜像

    基础概念 开发环境deepin linux 15 11 安装docker之后 执行命令 sudo usermod aG docker USER NAME 让docker和当前用户在一个组中 可以每次不用执行sudo命令了 三个核心的概念 镜
  • 【电路补习笔记】10、电感式开关电源(BUCK 降压电路)

    目录 分类 封装 焊线式 覆晶式 开关电源 三种基本的非隔离开关电源 纹波 ripple 开关电源的元件构成 有源开关 肖特基二极管或快恢复二极管 不使用普通硅二极管的原因 电感 电容 分压电阻 输出电压设置 工作原理 工作模式 连续模式
  • laya快捷键

    Ctrl F6 构建html Ctrl F7 实时编译 Ctrl F8 实时编译 F11 UI导出 不导出图集 图集不变的情况用这个会快很多
  • 分类和标注词汇(基于nltk)

    早在小学你就学过名词 动词 形容词和副词之间的差异 这些 词类 不是闲置的文法家的发明 而是对许多语言处理任务都有用的分类 正如我们将看到的 这些分类源于对文本中词的分布的简单的分析 本章的目的是要回答下列问题 什么是词汇分类 在自然语言处
  • sql-labs 闯关 5~10

    sql labs 闯关 5 10 友善爱国平等诚信民主友善公正敬业爱国友善爱国公正友善自由友善敬业爱国平等 复习笔记1 内容 盲注步骤思维导图 sql labs第五关 GET请求 双注入 单引号字符型 sql labs第六关 GET请求 双
  • Windows下Sqlmap环境安装教程详解

    更多编程教程请到 菜鸟教程 https www piaodoo com Sqlmap安装 Sqlmap gt gt 基于Python的自动化渗透测试工具 安装工具前需要进行Python的环境准备 Python环境的安装 1 1 下载与安装
  • 软件安全测试包含哪些内容和方法?安全测试报告的必要性

    软件安全测试是一种通过模拟真实攻击的方式 对软件系统进行全面的安全性评估和测试 以发现潜在的安全漏洞和弱点 是确保软件系统安全性的重要措施 在进行软件安全测试时 我们需要了解测试的内容和方法 以及为什么进行安全测试报告的必要性 一 软件安全
  • 2021-05-24

    JDBC 目录 JDBC 一 idea下创建JDBC项目 1 下载所需JDBC驱动 2 连接数据库 3 创建JDBC项目 二 JDBC常用类及常用方法介绍 1 DrivaerManger 驱动管理对象 2 Connection 数据库连接对
  • Chat GPT Access denied——最新解决方法

    前几天没怎么捣鼓ChatGpt 看到网上铺天盖地的被封号的消息 心想我不会也被封了吧 立马上线一探究竟 结果喜提Access denied 难道我要告别Chatgpt了 不 我不甘心 然后就是一顿操作根据网上各路大神帖子提供的方案 都一一失
  • Nginx参数配置详细说明【全局、http块、server块、events块】【已亲测】

    Nginx重点参数配置说明 本文包含Nginx参数配置说明全局块 http块 server块 events块共计30多个参数配置与解释 其中常见参数包含配置错误出现的错误日志 能让你更快的解决问题 该文的所有参数大部分经过单独测试 错误都是
  • Vue修改数据页面不更新的问题解决

    第一种场景 动态给对象新增属性或者删除属性是不会触发视图刷新的 Vue识别不到 第二种场景 通过数组下标修改数组中的元素或者手动修改数组的长度 Vue识别不到 解决方法1 静默刷新 使用v if的特性 在修改值之后将元素销毁 然后在修改后的