Skip to main content

实现函数组件

函数组件其实就是一个函数。

而函数组件在被解析成 VDom 的时候,是直接将函数赋值给 VDom.type

而 Dom 元素被解析成 VDom 的时候,是将 tagName 赋值给 VDom.type

这样,如果是函数组件的话,我们需要先执行 VDom.type 这个函数,才能拿到其返回的带有 tagNameVDom

这样就依据是否是 typeof x === "function" 来分别处理:

  • 创建 DOM
  • 处理 Children

另外还需要处理:

  • 处理查找 parent DOM 和 children DOM 的逻辑(需要越过没有 DOM 的 FC)
  • 支持传入 props
  • ...