【study】vue.set和this.$set的作用

90 阅读1分钟

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、区别

  1. 调用方式:
  • vue.set是全局方法,可以在任何地方使用
  • this.$set是实例方法,只能在vue组件的实例的上下文中使用
  1. 使用场景
  • vue.set适用于vue实例外部,例如vuex,确保对象和数组是响应式的
  • this.$set适合在vue组件内部的上下文中使用

4、vue3中

  • vue3中,proxy可实现响应式,不需要手动使用vue.set或this.$set来确保响应性,vue3的响应式系统可以自动检测对象和数组的属性的变化,并进行相应的更新