this.$set的疑问

this.form.processCode = row.code
this.$set(this.form, 'processCode', row.code)

上面和下面有什么区别吗

阅读 2.2k
3 个回答

this.form.processCode = row.code 属于赋值行为,是已经知道 this.form对象 有 processCode 这个属性了,然后把 row.code 赋值给这个属性;而 this.$set(this.form, 'processCode', row.code) 是向 this.form 这个响应式对象添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性。

如果你的form本身没有processCode属性的话,直接赋值视图不会响应更新,这个时候就需要使用this.$set()去更新了.

具体请参考官方文档

一个是对已知属性进行赋值,一个是创建新的属性

推荐问题