vue表单修改值后页面输入框中的没有更新(表单的强制刷新)

输入框带有选择按钮,选择后控制台可以打印选择后的数据,但并没有渲染到对应输入框。由于ES5限制,Vue不能检测到对象属性的添加或删除。因为 Vue在初始化实例时将属性转为 getter/setter,所以属性必须在 data 对象上才能让 Vue转换它,才能让它是响应的.

深入响应式原理

1.$set()方法重新渲染

this.$set(this.student,"age", 24)

2.$forceUpdate方法

this.$forceUpdate();

两个表单都需要强制刷新,一个强制刷新,一个未强制刷新会导致没有强制刷新映射不上,如果两个都强制刷新可能会导致表单跳不过验证,

解决采用$set()方法渲染

 this.$set(this.edit,'productName',row.productName)

3.深拷贝

let name2 = JSON.parse(JSON.stringify(this.name));
或者
this.taskForm = Object.assign({}, this.taskForm)

tip: Object.assign()拷贝当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。

posted @   ___sunsets  阅读(1139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示