Match-id-c9903f0cf11854c6f9df9974b95a3a1b2c534371

This commit is contained in:
* 2022-02-17 14:31:45 +08:00 committed by *
parent b8092c95cc
commit 6f977fce7a
2 changed files with 17 additions and 17 deletions

View File

@ -29,17 +29,24 @@ let ctxOldContext: Object = {};
let ctxOldChange: Boolean = false; let ctxOldChange: Boolean = false;
let ctxOldPreviousContext: Object = {}; let ctxOldPreviousContext: Object = {};
function setContext(vNode: VNode, contextName, value) {
vNode.contexts[contextName] = value;
}
function getContext(vNode: VNode, contextName) {
return vNode.contexts[contextName];
}
// capture阶段设置 // capture阶段设置
function setNamespaceCtx(vNode: VNode, dom?: Container) { function setNamespaceCtx(vNode: VNode, dom?: Container) {
const nextContext = getNSCtx(ctxNamespace, vNode.type, dom); const nextContext = getNSCtx(ctxNamespace, vNode.type, dom);
vNode.setContext(CTX_NAMESPACE, ctxNamespace); setContext(vNode, CTX_NAMESPACE, ctxNamespace);
ctxNamespace = nextContext; ctxNamespace = nextContext;
} }
// bubble阶段恢复 // bubble阶段恢复
function resetNamespaceCtx(vNode: VNode) { function resetNamespaceCtx(vNode: VNode) {
ctxNamespace = vNode.getContext(CTX_NAMESPACE); ctxNamespace = getContext(vNode, CTX_NAMESPACE);
} }
function getNamespaceCtx(): string { function getNamespaceCtx(): string {
@ -49,14 +56,14 @@ function getNamespaceCtx(): string {
function setContextCtx<T>(providerVNode: VNode, nextValue: T) { function setContextCtx<T>(providerVNode: VNode, nextValue: T) {
const context: ContextType<T> = providerVNode.type._context; const context: ContextType<T> = providerVNode.type._context;
providerVNode.setContext(CTX_CONTEXT, context.value); setContext(providerVNode, CTX_CONTEXT, context.value);
context.value = nextValue; context.value = nextValue;
} }
function resetContextCtx(providerVNode: VNode) { function resetContextCtx(providerVNode: VNode) {
const context: ContextType<any> = providerVNode.type._context; const context: ContextType<any> = providerVNode.type._context;
context.value = providerVNode.getContext(CTX_CONTEXT); context.value = getContext(providerVNode, CTX_CONTEXT);
} }
// 在局部更新时恢复父节点的context // 在局部更新时恢复父节点的context
@ -74,11 +81,11 @@ function recoverParentsContextCtx(vNode: VNode) {
// ctxOldContext是 旧context提供者的context // ctxOldContext是 旧context提供者的context
function setVNodeOldContext(providerVNode: VNode, context: Object) { function setVNodeOldContext(providerVNode: VNode, context: Object) {
providerVNode.setContext(CTX_OLD_CONTEXT, context); setContext(providerVNode, CTX_OLD_CONTEXT, context);
} }
function getVNodeOldContext(vNode: VNode) { function getVNodeOldContext(vNode: VNode) {
return vNode.getContext(CTX_OLD_CONTEXT); return getContext(vNode, CTX_OLD_CONTEXT);
} }
function setOldContextCtx(providerVNode: VNode, context: Object) { function setOldContextCtx(providerVNode: VNode, context: Object) {
@ -95,11 +102,11 @@ function resetOldContextCtx(vNode: VNode) {
} }
function setVNodeOldPreviousContext(providerVNode: VNode, context: Object) { function setVNodeOldPreviousContext(providerVNode: VNode, context: Object) {
providerVNode.setContext(CTX_OLD_PREVIOUS_CONTEXT, context); setContext(providerVNode, CTX_OLD_PREVIOUS_CONTEXT, context);
} }
function getVNodeOldPreviousContext(vNode: VNode) { function getVNodeOldPreviousContext(vNode: VNode) {
return vNode.getContext(CTX_OLD_PREVIOUS_CONTEXT); return getContext(vNode, CTX_OLD_PREVIOUS_CONTEXT);
} }
function setOldPreviousContextCtx(context: Object) { function setOldPreviousContextCtx(context: Object) {
@ -111,7 +118,7 @@ function getOldPreviousContextCtx() {
} }
function setContextChangeCtx(providerVNode: VNode, didChange: boolean) { function setContextChangeCtx(providerVNode: VNode, didChange: boolean) {
providerVNode.setContext(CTX_OLD_CHANGE, didChange); setContext(providerVNode, CTX_OLD_CHANGE, didChange);
ctxOldChange = didChange; ctxOldChange = didChange;
} }
@ -120,7 +127,7 @@ function getContextChangeCtx() {
} }
function resetContextChangeCtx(vNode: VNode) { function resetContextChangeCtx(vNode: VNode) {
ctxOldChange = vNode.getContext(CTX_OLD_CHANGE); ctxOldChange = getContext(vNode, CTX_OLD_CHANGE);
} }
export { export {

View File

@ -92,11 +92,4 @@ export class VNode {
this.toUpdateNodes = new Set<VNode>(); this.toUpdateNodes = new Set<VNode>();
} }
} }
setContext(contextName, value) {
this.contexts[contextName] = value;
}
getContext(contextName) {
return this.contexts[contextName];
}
} }