Home / Function/ genSSRElement() — vue Function Reference

genSSRElement() — vue Function Reference

Architecture documentation for the genSSRElement() function in codegen.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2["genSSRElement()"]
  24d38a9f_c51d_3154_83fb_40e61e6ab136["generate()"]
  24d38a9f_c51d_3154_83fb_40e61e6ab136 -->|calls| c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2
  3e4f99aa_7e87_0706_fb7b_464f106ea018["genSSRNode()"]
  3e4f99aa_7e87_0706_fb7b_464f106ea018 -->|calls| c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2
  57deee28_aac6_0fbe_7eff_db2c78f58dbf["genFor()"]
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 -->|calls| 57deee28_aac6_0fbe_7eff_db2c78f58dbf
  e458f6c9_a80f_c2c4_a63b_541be2a8b2b9["genIf()"]
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 -->|calls| e458f6c9_a80f_c2c4_a63b_541be2a8b2b9
  3cd1373c_a2c0_adeb_be13_1bf1ff92c1e2["genChildrenAsStringNode()"]
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 -->|calls| 3cd1373c_a2c0_adeb_be13_1bf1ff92c1e2
  90946362_1dcc_09cf_deab_4dd92fd90376["genSSRChildren()"]
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 -->|calls| 90946362_1dcc_09cf_deab_4dd92fd90376
  da9cc827_8b35_0376_d4b9_150019733eba["genStringElement()"]
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 -->|calls| da9cc827_8b35_0376_d4b9_150019733eba
  31022e41_9356_bc1a_19ac_a481181c0824["genStringElementWithChildren()"]
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 -->|calls| 31022e41_9356_bc1a_19ac_a481181c0824
  b3b5fa63_0571_9c9e_f75f_7175c7581d45["genNormalElement()"]
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 -->|calls| b3b5fa63_0571_9c9e_f75f_7175c7581d45
  4cfaef88_0bc8_30fc_0a01_09b4149fd58c["genElement()"]
  c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 -->|calls| 4cfaef88_0bc8_30fc_0a01_09b4149fd58c
  style c9c89a7e_a7ef_371a_0bb1_ccb05926e1f2 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/server-renderer/src/optimizing-compiler/codegen.ts lines 50–78

function genSSRElement(el: ASTElement, state: CodegenState): string {
  if (el.for && !el.forProcessed) {
    return genFor(el, state, genSSRElement)
  } else if (el.if && !el.ifProcessed) {
    return genIf(el, state, genSSRElement)
  } else if (el.tag === 'template' && !el.slotTarget) {
    return el.ssrOptimizability === optimizability.FULL
      ? genChildrenAsStringNode(el, state)
      : genSSRChildren(el, state) || 'void 0'
  }

  switch (el.ssrOptimizability) {
    case optimizability.FULL:
      // stringify whole tree
      return genStringElement(el, state)
    case optimizability.SELF:
      // stringify self and check children
      return genStringElementWithChildren(el, state)
    case optimizability.CHILDREN:
      // generate self as VNode and stringify children
      return genNormalElement(el, state, true)
    case optimizability.PARTIAL:
      // generate self as VNode and check children
      return genNormalElement(el, state, false)
    default:
      // bail whole tree
      return genElement(el, state)
  }
}

Subdomains

Frequently Asked Questions

What does genSSRElement() do?
genSSRElement() is a function in the vue codebase.
What does genSSRElement() call?
genSSRElement() calls 8 function(s): genChildrenAsStringNode, genElement, genFor, genIf, genNormalElement, genSSRChildren, genStringElement, genStringElementWithChildren.
What calls genSSRElement()?
genSSRElement() is called by 2 function(s): genSSRNode, generate.

Analyze Your Own Codebase

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

Try Supermodel Free