changeType(e) {
if(e===1||e===4) {
this.form.name = null
this.form.url = null
}
}
直接赋值导致我后面表单无法输入
这是因为 Vue.js 在处理响应式数据时,会在实例化时对 data 中的属性进行劫持,以便能够追踪数据的变化并在视图中进行更新。
当您直接将一个新属性赋值给对象时,Vue.js 无法检测到这个属性的变化,因为它不会触发 Vue 的响应式系统。这就导致了表单输入不了内容的情况,因为 Vue 不知道 form.name
已经被修改为 null
。
在vue中,当需要在响应式对象上添加一个新的属性时,直接赋值可能会导致该属性不被 Vue 监测到变化,从而不会触发视图更新。为了解决这个问题,Vue 提供了 $set
方法来添加响应式属性。
changeType(e) {
if(e===1||e===4) {
this.$set(this.form, 'name', null)
this.$set(this.form, 'url', null)
}
}