输入框带有选择按钮,选择后控制台可以打印选择后的数据,但并没有渲染到对应输入框。由于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()拷贝当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。