UNPKG

@purevue/reactivity

Version:

## 📖 Introduction

47 lines 1.55 kB
import { ReactiveEffect } from '../effect'; export type DebuggerEventExtraInfo = { target: object; type: 'track' | 'trigger'; key: any; newValue?: any; oldValue?: any; oldTarget?: Map<any, any> | Set<any>; }; /** * Dep 依赖管理器 * 每个响应式属性都会对应一个 Dep,管理它的订阅者 (effect) */ export declare class Dep { /** 当前 dep 的版本号(触发 trigger 时递增) */ version: number; /** 关联的 computed(如果有的话) */ /** 保存订阅该 dep 的 effects */ subs: Set<ReactiveEffect>; constructor(); /** * 收集依赖 */ track(debugInfo?: DebuggerEventExtraInfo): void; /** * 触发依赖更新 */ trigger(debugInfo?: DebuggerEventExtraInfo): void; notify(debugInfo?: DebuggerEventExtraInfo): void; } /** * 一个特殊的唯一 Symbol,表示对象的「遍历依赖」。 * * - 当在 effect 里写 `for...in` 或者 `Object.keys(obj)`, * Vue 就会对这个 ITERATE_KEY 建立依赖。 * - 这样一旦对象新增 / 删除属性(ADD / DELETE),就会触发这些依赖。 */ export declare const ITERATE_KEY: unique symbol; /** * 一个特殊的唯一 Symbol,表示数组的「遍历依赖」。 * * - 当在 effect 里写 `for...of` 或者 `arr.forEach`, * Vue 就会对这个 ARRAY_ITERATE_KEY 建立依赖。 * - 这样一旦数组新增 / 删除索引,就会触发这些依赖。 */ export declare const ARRAY_ITERATE_KEY: unique symbol; //# sourceMappingURL=index.d.ts.map