动态给vue的Data添加一个新的属性数据更新但是页面没有更新,怎么解决

Vue不允许在已经创建的实例上动态添加新的响应式属性,若想实现数据与视图同步更新,可以采取下面三种解决方案:

  • Vue.set()
  • Object.assign()
  • $forceUpdated()

Vue.set()

Vue.set(target,propertyName/index,value)

参数

  • { object | array } target
  • { string | number } propertyName/index
  • { any } value

Object.assign()

直接使用Object.assign()添加到 对象的新属性不会触发更新,应创建一个新的对象,合并原对象和混入对象的属性

this.someObject = Object.assign({}.this.soml'keObject,{newProperty1:1,newProperty2:2...})

$forceUpdate

如果你发现你自己需要在Vue中做一次强制更新,99.9%的情况,是你在某个地方做错了事

$forceUpdate迫使Vue实例重新渲染

PS:仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件

使用场景

如果为对象添加少量的新属性,可以直接采用Vue.set()

如果需要为新对象添加大量的新属性,则通过Object.assign()创建新对象

如果你实在不知道怎么操作时,可采取$forceUpdate()进行强制刷新(不建议)

相关推荐
奕鼎竜瑆3 小时前
Solid 前端响应式开发从零到精通
前端·人工智能
动恰客流统计4 小时前
景区客流统计怎么做?兼顾管控与运营的实施方案解析
大数据·前端·人工智能
派小心.5 小时前
A/B测试工具免费版够用吗?
前端·数据分析
前端snow5 小时前
ai agent --- redis 缓存
前端
duanshu_6 小时前
官网表单与下载异常怎么排查?五个环节定位故障
前端·自动化·flyweight
Zhou1411366 小时前
SpringBoot_03_Web开发
前端·spring boot·python
辻弋2016 小时前
【无标题】
大数据·服务器·前端·搜索引擎·开源软件
FluxArt7 小时前
GPT Image 2.5 中文提示词教程:Flux Art 可复用模板
前端·gpt·算法
搬砖的小码农_Sky8 小时前
AI Agent:Windows上Node.js安装后 npm -v报错
前端·npm·node.js·人机交互
FYKJ_20108 小时前
SSM校园失物招领系统41452-计算机课程设计、毕业设计
java·vue.js·spring boot·python·mysql·typescript·spark