1、vue.set
Vue.set 是 Vue 的全局方法,用于向响应式对象添加属性。它主要用于修改 Vue 实例中不在初始数据对象中的深层次属性
Vue.set(target, key, value);
`target`:需要添加属性的目标对象。
`key`:属性的键。
`value`:属性的值。
2、this.$set
this.$set 是 Vue 实例方法,与 Vue.set 功能类似,但使用方便,因为你不需要导入 Vue,只需要在 Vue 组件实例中直接调用该方法
this.$set(target, key, value);
`target`:需要添加属性的目标对象。
`key`:属性的键。
`value`:属性的值。
3、区别
- 调用方式:
- vue.set是全局方法,可以在任何地方使用
- this.$set是实例方法,只能在vue组件的实例的上下文中使用
- 使用场景
- vue.set适用于vue实例外部,例如vuex,确保对象和数组是响应式的
- this.$set适合在vue组件内部的上下文中使用
4、vue3中
- vue3中,proxy可实现响应式,不需要手动使用vue.set或this.$set来确保响应性,vue3的响应式系统可以自动检测对象和数组的属性的变化,并进行相应的更新