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()拷贝当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM