认识
2023年06月10日
一、认识
Slot
二、细节
2.1 解析
如果组件标签有子节点,在解析的时候将这些子节点,解析成一个特定的数据结构,该结构中包含了插槽的全部信息,然后将该数据结构放到父节点的属性上,其实就是找个地方存放这些信息,然后在 renderSlot
中使用时取出来。当然这个解析过程是发生在父组件的解析过程中的。
2.2 生成渲染函数
在生成子组件的渲染函数阶段,如果碰到 slot
标签,则返回一个 _t
的渲染函数,函数接收两个参数:属性的 JSON
字符串形式,slot
标签的所有子节点的渲染函数组成的 children
数组。
2.3 render helper
在执行子组件的渲染函数时,如果执行到 vm._t
,就会调用 renderSlot
方法,该方法会返回插槽的 VNode
,然后进入子组件的 patch
阶段,将这些 VNode
变成真实的 DOM
并渲染到页面上。