Match-id-c9903f0cf11854c6f9df9974b95a3a1b2c534371
This commit is contained in:
parent
b8092c95cc
commit
6f977fce7a
|
@ -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 {
|
||||||
|
|
|
@ -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];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue