Home / Function/ walk() — vue Function Reference

walk() — vue Function Reference

Architecture documentation for the walk() function in optimizer.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  87c73aff_df9c_f5f2_d11d_030846e3e51a["walk()"]
  c246f9b9_73ff_c006_0f1d_57169c68facd["optimizer.ts"]
  87c73aff_df9c_f5f2_d11d_030846e3e51a -->|defined in| c246f9b9_73ff_c006_0f1d_57169c68facd
  396e6a98_8185_efdc_5362_8225162b2992["optimize()"]
  396e6a98_8185_efdc_5362_8225162b2992 -->|calls| 87c73aff_df9c_f5f2_d11d_030846e3e51a
  1dcfd8a6_1f84_ef58_cff2_cbabba6785bf["isUnOptimizableTree()"]
  87c73aff_df9c_f5f2_d11d_030846e3e51a -->|calls| 1dcfd8a6_1f84_ef58_cff2_cbabba6785bf
  6a34b718_7a56_91a6_3d8b_857be35b39b2["hasCustomDirective()"]
  87c73aff_df9c_f5f2_d11d_030846e3e51a -->|calls| 6a34b718_7a56_91a6_3d8b_857be35b39b2
  47dd681a_727d_f571_1cb6_7d72c7103093["optimizeSiblings()"]
  87c73aff_df9c_f5f2_d11d_030846e3e51a -->|calls| 47dd681a_727d_f571_1cb6_7d72c7103093
  style 87c73aff_df9c_f5f2_d11d_030846e3e51a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/server-renderer/src/optimizing-compiler/optimizer.ts lines 31–72

function walk(node: ASTNode, isRoot?: boolean) {
  if (isUnOptimizableTree(node)) {
    node.ssrOptimizability = optimizability.FALSE
    return
  }
  // root node or nodes with custom directives should always be a VNode
  const selfUnoptimizable = isRoot || hasCustomDirective(node)
  const check = child => {
    if (child.ssrOptimizability !== optimizability.FULL) {
      node.ssrOptimizability = selfUnoptimizable
        ? optimizability.PARTIAL
        : optimizability.SELF
    }
  }
  if (selfUnoptimizable) {
    node.ssrOptimizability = optimizability.CHILDREN
  }
  if (node.type === 1) {
    for (let i = 0, l = node.children.length; i < l; i++) {
      const child = node.children[i]
      walk(child)
      check(child)
    }
    if (node.ifConditions) {
      for (let i = 1, l = node.ifConditions.length; i < l; i++) {
        const block = node.ifConditions[i].block
        walk(block, isRoot)
        check(block)
      }
    }
    if (
      node.ssrOptimizability == null ||
      (!isRoot && (node.attrsMap['v-html'] || node.attrsMap['v-text']))
    ) {
      node.ssrOptimizability = optimizability.FULL
    } else {
      node.children = optimizeSiblings(node)
    }
  } else {
    node.ssrOptimizability = optimizability.FULL
  }
}

Subdomains

Called By

Frequently Asked Questions

What does walk() do?
walk() is a function in the vue codebase, defined in packages/server-renderer/src/optimizing-compiler/optimizer.ts.
Where is walk() defined?
walk() is defined in packages/server-renderer/src/optimizing-compiler/optimizer.ts at line 31.
What does walk() call?
walk() calls 3 function(s): hasCustomDirective, isUnOptimizableTree, optimizeSiblings.
What calls walk()?
walk() is called by 1 function(s): optimize.

Analyze Your Own Codebase

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

Try Supermodel Free