vue中的set的原理

vue中的set的原理

Vue.js 中 set 方法的原理

Vue.js 中的 set 方法用于向响应式对象添加或设置新属性。它的原理可以总结如下:

响应式代理

  • Vue.js 中的响应式对象被一个代理对象(proxy)包裹。
  • 访问或更新被代理对象时,会触发代理对象上的拦截器。
  • 拦截器负责通知 Vue.js,从而使视图能够自动更新。

属性设置

  • 当调用 set 方法时,Vue.js 会将新属性添加到代理对象中。
  • 如果该属性已经存在,则会更新它的值。
  • 对于 Array 和 Object 等复杂类型,Vue.js 会创建一个新的响应式代理对象来包裹它们。

拦截器执行

  • 当属性被添加或更新时,代理对象的拦截器会被触发。
  • 拦截器向 Vue.js 发送一个通知,表明响应式对象已发生变化。
  • Vue.js 然后会更新依赖于该响应式对象的视图。

重复检测

  • Vue.js 会检查新添加或更新的属性是否已经存在于响应式对象中。
  • 如果属性已经存在,Vue.js 不会触发拦截器。
  • 这有助于防止不必要的重渲染。

示例

以下是一个使用 set 方法的示例:

const data = ref({
  name: \'John\'
});

data.value.age = 30; // 使用点语法设置新属性
data.value.name = \'Jane\'; // 更新现有属性

// 视图自动更新以反映更改

给TA打赏
共{{data.count}}人
人已打赏
WEB前端

js中的$符号是什么意思

2024-5-21 12:19:22

WEB前端

vue中父组件和子组件的生命周期

2024-5-21 12:24:32

【腾讯云】11.11云上盛惠!云服务器首年1.8折起,买1年送3个月!
11.11云上盛惠!海量产品·轻松上云!云服务器首年1.8折起,买1年送3个月!超值优惠,性能稳定,让您的云端之旅更加畅享。
查看更多相关信息>>
站长

(工作日 10:00 - 22:30 为您服务)

2026-05-15 20:31:45

您好,无论是售前、售后、意见建议……均可通过联系工单与我们取得联系。

猜你想问:

  • 购买的模板免费包安装吗?

  • 这个演示地址有吗?

  • 购买vip会员可以下载哪些模板?

您的留言我们已经收到,我们将会尽快跟您联系!
取消
立即选择任一渠道联系我们