Home / Function/ initSetup() — vue Function Reference

initSetup() — vue Function Reference

Architecture documentation for the initSetup() function in apiSetup.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  febe102d_0cde_5025_1bb0_883314aa12fa["initSetup()"]
  3a7c7919_1905_22a7_f604_9084d5e5d0df["apiSetup.ts"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|defined in| 3a7c7919_1905_22a7_f604_9084d5e5d0df
  77439d3b_3112_cab2_abe3_0aaab4a3b61f["createSetupContext()"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|calls| 77439d3b_3112_cab2_abe3_0aaab4a3b61f
  d455acb0_4874_02b0_4271_588c2e7f6b9b["setCurrentInstance()"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|calls| d455acb0_4874_02b0_4271_588c2e7f6b9b
  d9fae33f_7845_7289_de16_bee11c7f60e1["pushTarget()"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|calls| d9fae33f_7845_7289_de16_bee11c7f60e1
  752741bd_d268_dc94_2907_951371b7b204["shallowReactive()"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|calls| 752741bd_d268_dc94_2907_951371b7b204
  e4823f37_5db2_5310_aa9c_5b3593b02b07["popTarget()"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|calls| e4823f37_5db2_5310_aa9c_5b3593b02b07
  82a7440d_c9f9_b86f_d255_d7b035940ca2["isFunction()"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|calls| 82a7440d_c9f9_b86f_d255_d7b035940ca2
  6c50c697_3e50_26c1_85ed_ce95cf6e8b72["isObject()"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|calls| 6c50c697_3e50_26c1_85ed_ce95cf6e8b72
  737b31eb_8659_a208_c047_017ebd839242["proxyWithRefUnwrap()"]
  febe102d_0cde_5025_1bb0_883314aa12fa -->|calls| 737b31eb_8659_a208_c047_017ebd839242
  style febe102d_0cde_5025_1bb0_883314aa12fa fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

src/v3/apiSetup.ts lines 28–85

export function initSetup(vm: Component) {
  const options = vm.$options
  const setup = options.setup
  if (setup) {
    const ctx = (vm._setupContext = createSetupContext(vm))

    setCurrentInstance(vm)
    pushTarget()
    const setupResult = invokeWithErrorHandling(
      setup,
      null,
      [vm._props || shallowReactive({}), ctx],
      vm,
      `setup`
    )
    popTarget()
    setCurrentInstance()

    if (isFunction(setupResult)) {
      // render function
      // @ts-ignore
      options.render = setupResult
    } else if (isObject(setupResult)) {
      // bindings
      if (__DEV__ && setupResult instanceof VNode) {
        warn(
          `setup() should not return VNodes directly - ` +
            `return a render function instead.`
        )
      }
      vm._setupState = setupResult
      // __sfc indicates compiled bindings from <script setup>
      if (!setupResult.__sfc) {
        for (const key in setupResult) {
          if (!isReserved(key)) {
            proxyWithRefUnwrap(vm, setupResult, key)
          } else if (__DEV__) {
            warn(`Avoid using variables that start with _ or $ in setup().`)
          }
        }
      } else {
        // exposed for compiled render fn
        const proxy = (vm._setupProxy = {})
        for (const key in setupResult) {
          if (key !== '__sfc') {
            proxyWithRefUnwrap(proxy, setupResult, key)
          }
        }
      }
    } else if (__DEV__ && setupResult !== undefined) {
      warn(
        `setup() should return an object. Received: ${
          setupResult === null ? 'null' : typeof setupResult
        }`
      )
    }
  }
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does initSetup() do?
initSetup() is a function in the vue codebase, defined in src/v3/apiSetup.ts.
Where is initSetup() defined?
initSetup() is defined in src/v3/apiSetup.ts at line 28.
What does initSetup() call?
initSetup() calls 8 function(s): createSetupContext, isFunction, isObject, popTarget, proxyWithRefUnwrap, pushTarget, setCurrentInstance, shallowReactive.

Analyze Your Own Codebase

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

Try Supermodel Free