针对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) 添加
君不见,高堂明镜悲白发,朝如青丝暮成雪
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现