Home / File/ lifecycle.ts — vue Source File

lifecycle.ts — vue Source File

Architecture documentation for lifecycle.ts, a typescript file in the vue codebase. 21 imports, 7 dependents.

File typescript CoreRuntime Instance 21 imports 7 dependents 9 functions

Entity Profile

Dependency Diagram

graph LR
  f3560440_54c1_5663_36f8_c7de54d7310b["lifecycle.ts"]
  d22f3dff_cc24_705a_1193_eec206dcb1d5["config.ts"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> d22f3dff_cc24_705a_1193_eec206dcb1d5
  acd39cb4_1b40_1f96_d7d8_00ba7dc7b283["watcher.ts"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> acd39cb4_1b40_1f96_d7d8_00ba7dc7b283
  d5415a1d_c2b2_5cd9_ec65_daba30665c8f["perf.ts"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> d5415a1d_c2b2_5cd9_ec65_daba30665c8f
  c66f2b7c_7247_ba1e_a44e_c9fbf576a0f8["mark"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> c66f2b7c_7247_ba1e_a44e_c9fbf576a0f8
  3dba2c58_eaa7_9043_7b9a_5564624e9333["measure"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> 3dba2c58_eaa7_9043_7b9a_5564624e9333
  a13b4a2c_7af7_bcfd_03a9_13286f908ca0["vnode.ts"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> a13b4a2c_7af7_bcfd_03a9_13286f908ca0
  7b0cc275_96e5_15f9_3ca6_626be691c291["events.ts"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> 7b0cc275_96e5_15f9_3ca6_626be691c291
  7c8c6406_e098_edbf_9f4d_d068527deff1["updateComponentListeners"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> 7c8c6406_e098_edbf_9f4d_d068527deff1
  f7e6d498_cf3b_d729_68d1_b772bf90e35f["resolve-slots.ts"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> f7e6d498_cf3b_d729_68d1_b772bf90e35f
  23d9ce46_8163_f008_2464_0fc0040f465c["resolveSlots"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> 23d9ce46_8163_f008_2464_0fc0040f465c
  012c0986_6b9d_ad59_8fba_57884312dd3b["index.ts"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> 012c0986_6b9d_ad59_8fba_57884312dd3b
  2bcc88b5_db8a_b047_2abd_7382948898ab["toggleObserving"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> 2bcc88b5_db8a_b047_2abd_7382948898ab
  dfb2b3e1_ffba_6029_124e_b43a30f0f999["dep.ts"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> dfb2b3e1_ffba_6029_124e_b43a30f0f999
  46145e02_0be2_a179_3c66_d786e8df82f3["pushTarget"]
  f3560440_54c1_5663_36f8_c7de54d7310b --> 46145e02_0be2_a179_3c66_d786e8df82f3
  style f3560440_54c1_5663_36f8_c7de54d7310b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import config from '../config'
import Watcher, { WatcherOptions } from '../observer/watcher'
import { mark, measure } from '../util/perf'
import VNode, { createEmptyVNode } from '../vdom/vnode'
import { updateComponentListeners } from './events'
import { resolveSlots } from './render-helpers/resolve-slots'
import { toggleObserving } from '../observer/index'
import { pushTarget, popTarget } from '../observer/dep'
import type { Component } from 'types/component'
import type { MountedComponentVNode } from 'types/vnode'

import {
  warn,
  noop,
  remove,
  emptyObject,
  validateProp,
  invokeWithErrorHandling
} from '../util/index'
import { currentInstance, setCurrentInstance } from 'v3/currentInstance'
import { getCurrentScope } from 'v3/reactivity/effectScope'
import { syncSetupProxy } from 'v3/apiSetup'

export let activeInstance: any = null
export let isUpdatingChildComponent: boolean = false

export function setActiveInstance(vm: Component) {
  const prevActiveInstance = activeInstance
  activeInstance = vm
  return () => {
    activeInstance = prevActiveInstance
  }
}

export function initLifecycle(vm: Component) {
  const options = vm.$options

  // locate first non-abstract parent
  let parent = options.parent
  if (parent && !options.abstract) {
    while (parent.$options.abstract && parent.$parent) {
      parent = parent.$parent
    }
    parent.$children.push(vm)
  }

  vm.$parent = parent
  vm.$root = parent ? parent.$root : vm

  vm.$children = []
  vm.$refs = {}

  vm._provided = parent ? parent._provided : Object.create(null)
  vm._watcher = null
  vm._inactive = null
  vm._directInactive = false
  vm._isMounted = false
  vm._isDestroyed = false
  vm._isBeingDestroyed = false
}
// ... (362 more lines)

Domain

Subdomains

Frequently Asked Questions

What does lifecycle.ts do?
lifecycle.ts is a source file in the vue codebase, written in typescript. It belongs to the CoreRuntime domain, Instance subdomain.
What functions are defined in lifecycle.ts?
lifecycle.ts defines 9 function(s): activateChildComponent, callHook, deactivateChildComponent, initLifecycle, isInInactiveTree, lifecycleMixin, mountComponent, setActiveInstance, updateChildComponent.
What does lifecycle.ts depend on?
lifecycle.ts imports 21 module(s): apiSetup, component, config.ts, currentInstance, dep.ts, effectScope, events.ts, index.ts, and 13 more.
What files import lifecycle.ts?
lifecycle.ts is imported by 7 file(s): create-component.ts, index.ts, init.ts, patch.ts, render.ts, scheduler.ts, state.ts.
Where is lifecycle.ts in the architecture?
lifecycle.ts is located at src/core/instance/lifecycle.ts (domain: CoreRuntime, subdomain: Instance, directory: src/core/instance).

Analyze Your Own Codebase

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

Try Supermodel Free