FormKit Observer是一个实用工具,用于将FormKitNode包装在依赖跟踪观察者代理中。
创建观察者。
createObserver(node: FormKitNode, dependencies?: FormKitDependencies): FormKitObservedNode;
node
— 要观察的 FormKitNode。dependencies
可选 — 依赖的节点和需要监视变化的事件。返回一个 FormKitObservedNode。
确定哪些节点应该被添加为依赖,哪些应该被移除。
diffDeps(previous: FormKitDependencies, current: FormKitDependencies): [FormKitDependencies, FormKitDependencies];
previous
— 之前的观察者依赖。current
— 新的/当前的观察者依赖。一个元组的映射:toAdd
和 toRemove
。
检查给定的节点是否被撤销。
isKilled(node: FormKitObservedNode): boolean;
node
— 任何要检查的观察节点。一个 boolean
,表示节点是否被撤销。
从观察节点和子树中移除所有的收据。
removeListeners(receipts: FormKitObserverReceipts): void;
receipts
— 要移除的FormKit观察者收据。一个与FormKitNode兼容的API,能够确定节点及其值的完整依赖树。
interface FormKitObservedNode extends FormKitNode {
_node: FormKitNode;
deps: FormKitDependencies;
kill: () => undefined;
observe: () => void;
receipts: FormKitObserverReceipts;
stopObserve: () => FormKitDependencies;
watch:<TextendsFormKitWatchable>(block: T, after?: (value: ReturnType<T>) => void) => void;
}
一个用于监视节点的回调。
interface FormKitWatchable<T = unknown> {
(node: FormKitObservedNode): T;
}
依赖的节点和需要监视变化的事件。
export type FormKitDependencies = Map<FormKitNode, Set<string>> & {
active?: boolean;
};
节点的映射,其值为eventsName: receipt的映射
export type FormKitObserverReceipts = Map<FormKitNode, {
[index: string]: string;
}>;