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

View File

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