有机猴灬残暴SamaLife · Code · Explore
返回笔记
QUICK NOTE

用 Proxy 实现简易数据监听

通过 Proxy、Reflect 与订阅集合,理解最小响应式系统的工作方式。

基本实现

使用 Set 保存订阅函数,在 set 拦截器中通知订阅者,再用 Reflect 完成真正的赋值。

CODE
const effects = new Set()
const observe = (fn) => effects.add(fn)
const state = new Proxy({ count: 0 }, {
  get: (target, key, receiver) => Reflect.get(target, key, receiver),
  set(target, key, value, receiver) {
    const changed = Reflect.set(target, key, value, receiver)
    effects.forEach((effect) => effect())
    return changed
  },
})

真实响应式系统还要处理依赖收集、嵌套对象、批量更新和清理副作用,但这个例子足够解释核心链路。