Home / Function/ resolveSlots() — vue Function Reference

resolveSlots() — vue Function Reference

Architecture documentation for the resolveSlots() function in resolve-slots.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  104d091a_5520_5f91_df65_4a79135c9791["resolveSlots()"]
  d1e549a1_8d2d_9fe4_1d06_3f7035b5e697["resolve-slots.ts"]
  104d091a_5520_5f91_df65_4a79135c9791 -->|defined in| d1e549a1_8d2d_9fe4_1d06_3f7035b5e697
  055f956d_f3e0_f8ad_f06a_a9b3085eb888["updateChildComponent()"]
  055f956d_f3e0_f8ad_f06a_a9b3085eb888 -->|calls| 104d091a_5520_5f91_df65_4a79135c9791
  bdbcb4df_444f_38c6_ba9d_20ef23f9091f["initRender()"]
  bdbcb4df_444f_38c6_ba9d_20ef23f9091f -->|calls| 104d091a_5520_5f91_df65_4a79135c9791
  2b1a34a9_e713_84e7_6b26_d06155dba96c["FunctionalRenderContext()"]
  2b1a34a9_e713_84e7_6b26_d06155dba96c -->|calls| 104d091a_5520_5f91_df65_4a79135c9791
  style 104d091a_5520_5f91_df65_4a79135c9791 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

src/core/instance/render-helpers/resolve-slots.ts lines 7–47

export function resolveSlots(
  children: Array<VNode> | null | undefined,
  context: Component | null
): { [key: string]: Array<VNode> } {
  if (!children || !children.length) {
    return {}
  }
  const slots: Record<string, any> = {}
  for (let i = 0, l = children.length; i < l; i++) {
    const child = children[i]
    const data = child.data
    // remove slot attribute if the node is resolved as a Vue slot node
    if (data && data.attrs && data.attrs.slot) {
      delete data.attrs.slot
    }
    // named slots should only be respected if the vnode was rendered in the
    // same context.
    if (
      (child.context === context || child.fnContext === context) &&
      data &&
      data.slot != null
    ) {
      const name = data.slot
      const slot = slots[name] || (slots[name] = [])
      if (child.tag === 'template') {
        slot.push.apply(slot, child.children || [])
      } else {
        slot.push(child)
      }
    } else {
      ;(slots.default || (slots.default = [])).push(child)
    }
  }
  // ignore slots that contains only whitespace
  for (const name in slots) {
    if (slots[name].every(isWhitespace)) {
      delete slots[name]
    }
  }
  return slots
}

Domain

Subdomains

Frequently Asked Questions

What does resolveSlots() do?
resolveSlots() is a function in the vue codebase, defined in src/core/instance/render-helpers/resolve-slots.ts.
Where is resolveSlots() defined?
resolveSlots() is defined in src/core/instance/render-helpers/resolve-slots.ts at line 7.
What calls resolveSlots()?
resolveSlots() is called by 3 function(s): FunctionalRenderContext, initRender, updateChildComponent.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free