Home / Type/ ComponentOptions Type — vue Architecture

ComponentOptions Type — vue Architecture

Architecture documentation for the ComponentOptions type/interface in options.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  048b0af2_44f6_8931_d824_f1e2c1b4023c["ComponentOptions"]
  99480f1a_03a1_34c3_490d_e25f87285c5f["options.ts"]
  048b0af2_44f6_8931_d824_f1e2c1b4023c -->|defined in| 99480f1a_03a1_34c3_490d_e25f87285c5f
  style 048b0af2_44f6_8931_d824_f1e2c1b4023c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

src/types/options.ts lines 19–107

export type ComponentOptions = {
  // v3
  setup?: (props: Record<string, any>, ctx: SetupContext) => unknown

  [key: string]: any

  componentId?: string

  // data
  data: object | Function | void
  props?:
    | string[]
    | Record<string, Function | Array<Function> | null | PropOptions>
  propsData?: object
  computed?: {
    [key: string]:
      | Function
      | {
          get?: Function
          set?: Function
          cache?: boolean
        }
  }
  methods?: { [key: string]: Function }
  watch?: { [key: string]: Function | string }

  // DOM
  el?: string | Element
  template?: string
  render: (h: () => VNode) => VNode
  renderError?: (h: () => VNode, err: Error) => VNode
  staticRenderFns?: Array<() => VNode>

  // lifecycle
  beforeCreate?: Function
  created?: Function
  beforeMount?: Function
  mounted?: Function
  beforeUpdate?: Function
  updated?: Function
  activated?: Function
  deactivated?: Function
  beforeDestroy?: Function
  destroyed?: Function
  errorCaptured?: () => boolean | void
  serverPrefetch?: Function
  renderTracked?(e: DebuggerEvent): void
  renderTriggerd?(e: DebuggerEvent): void

  // assets
  directives?: { [key: string]: object }
  components?: { [key: string]: Component }
  transitions?: { [key: string]: object }
  filters?: { [key: string]: Function }

  // context
  provide?: Record<string | symbol, any> | (() => Record<string | symbol, any>)
  inject?:
    | { [key: string]: InjectKey | { from?: InjectKey; default?: any } }
    | Array<string>

  // component v-model customization
  model?: {
    prop?: string
    event?: string
  }

  // misc
  parent?: Component
  mixins?: Array<object>
  name?: string
  extends?: Component | object
  delimiters?: [string, string]
  comments?: boolean
  inheritAttrs?: boolean

  // Legacy API
  abstract?: any

  // private
  _isComponent?: true

Frequently Asked Questions

What is the ComponentOptions type?
ComponentOptions is a type/interface in the vue codebase, defined in src/types/options.ts.
Where is ComponentOptions defined?
ComponentOptions is defined in src/types/options.ts at line 19.

Analyze Your Own Codebase

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

Try Supermodel Free