Match-id-9ccbe249bd64aa265df986ea76dfa1446be57717
This commit is contained in:
parent
24d53da4d6
commit
bd7c640db6
|
@ -137,6 +137,7 @@ export class VNode {
|
|||
this.realNode = null;
|
||||
this.stateCallbacks = null;
|
||||
this.isLazyComponent = true;
|
||||
this.lazyType = null;
|
||||
break;
|
||||
case Fragment:
|
||||
break;
|
||||
|
|
|
@ -84,28 +84,6 @@ export function updateVNode(vNode: VNode, vNodeProps?: any): VNode {
|
|||
return vNode;
|
||||
}
|
||||
|
||||
function getVNodeTag(type: any) {
|
||||
let vNodeTag = ClsOrFunComponent;
|
||||
let isLazy = false;
|
||||
const componentType = typeof type;
|
||||
|
||||
if (componentType === 'function') {
|
||||
if (isClassComponent(type)) {
|
||||
vNodeTag = ClassComponent;
|
||||
}
|
||||
} else if (componentType === 'string') {
|
||||
vNodeTag = DomComponent;
|
||||
} else if (type === TYPE_SUSPENSE) {
|
||||
vNodeTag = SuspenseComponent;
|
||||
} else if (componentType === 'object' && type !== null && typeMap[type.vtype]) {
|
||||
vNodeTag = typeMap[type.vtype];
|
||||
isLazy = type.vtype === TYPE_LAZY;
|
||||
} else {
|
||||
throw Error(`Component type is invalid, got: ${type == null ? type : componentType}`);
|
||||
}
|
||||
return { vNodeTag, isLazy };
|
||||
}
|
||||
|
||||
export function createFragmentVNode(fragmentKey, fragmentProps) {
|
||||
const vNode = newVirtualNode(Fragment, fragmentKey, fragmentProps);
|
||||
vNode.shouldUpdate = true;
|
||||
|
@ -127,7 +105,24 @@ export function createPortalVNode(portal) {
|
|||
}
|
||||
|
||||
export function createUndeterminedVNode(type, key, props) {
|
||||
const { vNodeTag, isLazy } = getVNodeTag(type);
|
||||
let vNodeTag = ClsOrFunComponent;
|
||||
let isLazy = false;
|
||||
const componentType = typeof type;
|
||||
|
||||
if (componentType === 'function') {
|
||||
if (isClassComponent(type)) {
|
||||
vNodeTag = ClassComponent;
|
||||
}
|
||||
} else if (componentType === 'string') {
|
||||
vNodeTag = DomComponent;
|
||||
} else if (type === TYPE_SUSPENSE) {
|
||||
vNodeTag = SuspenseComponent;
|
||||
} else if (componentType === 'object' && type !== null && typeMap[type.vtype]) {
|
||||
vNodeTag = typeMap[type.vtype];
|
||||
isLazy = type.vtype === TYPE_LAZY;
|
||||
} else {
|
||||
throw Error(`Component type is invalid, got: ${type == null ? type : componentType}`);
|
||||
}
|
||||
|
||||
const vNode = newVirtualNode(vNodeTag, key, props);
|
||||
vNode.type = type;
|
||||
|
|
Loading…
Reference in New Issue