function getDomByFunctionComponent(vNode) {
let { type, props } = vNode;
let renderVNode = type(props);
if (!renderVNode) return null;
vNode.oldRenderVNode = renderVNode
let dom = createDOM(renderVNode)
vNode.dom = dom
return dom;
}
function getDomByClassComponent(vNode) {
let { type, props, ref } = vNode;
let instance = new type(props)
vNode.classInstance = instance
ref && (ref.current = instance);
let renderVNode = instance.render();
instance.oldVNode = renderVNode
if (!renderVNode) return null;
let dom = createDOM(renderVNode);
if (instance.componentDidMount) instance.componentDidMount();
return dom
}
老师你好。以下代码:
function getDomByFunctionComponent(vNode) {
let { type, props } = vNode;
let renderVNode = type(props);
if (!renderVNode) return null;
vNode.oldRenderVNode = renderVNode;
let dom = createDOM(renderVNode);
vNode.dom = dom;
return dom;
}
为什么会有以下逻辑?
let dom = createDOM(renderVNode);
vNode.dom = dom
这里的vNode是对应的FunctionalComponent,而dom是真实DOM,这里对应不上吧?不应该是vNode.oldRenderVNode.dom = dom这样吗?