针对vue中请求数据对象新添加的属性不能响应式的解决方法

1.需要给对象添加属性时,不能采用传统的obj.属性=值,obj[属性]=值 来添加属性,在vue页面时需要这样使用

this.$set(obj,"propertyName","value") 来添加属性    /* obj 要添加属性的对象   propertyName  属性名   value 属性值 */

2.同理,在修改属性的时候,在对应的方法中也需要this.$set(obj,"propertyName","value") 来修改属性属性  

注意新增,修改必须都写!!!

这样页面就可以动态响应新添加的属性了

 

1.vue不在data中声明的对象不是响应式。采用传统的obj.属性=值,obj[属性]=值 来添加属性的时候会报错
 
总结:

Vue不能检测到对象属性的添加或删除,由于Vue在初始化实例时会对属性执行getter/setter转化,所以属性必须在data上才能被执行,这个是响应式的。对于已创建的实例,Vue不允许添加根级别的响应式属性。

解决方法:

方法一、在data中事先声明该属性;

方法二、使用 Vue.set(object, key, value)或 vm.$set(object, key, value) 添加

posted @   lzhflzjx  阅读(1170)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示