import VNode from 'core/vdom/vnode'
import { DebuggerEvent } from 'v3/debug'
import { SetupContext } from 'v3/apiSetup'
import { Component } from './component'
export type InternalComponentOptions = {
_isComponent: true
parent: Component
_parentVnode: VNode
render?: Function
staticRenderFns?: Array<Function>
}
type InjectKey = string | Symbol
export type ComponentOptions = {
setup?: (props: Record<string, any>, ctx: SetupContext) => unknown
[key: string]: any
componentId?: string
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 }
el?: string | Element
template?: string
render: (h: () => VNode) => VNode
renderError?: (h: () => VNode, err: Error) => VNode
staticRenderFns?: Array<() => VNode>
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
directives?: { [key: string]: object }
components?: { [key: string]: Component }
transitions?: { [key: string]: object }
filters?: { [key: string]: Function }
provide?: Record<string | symbol, any> | (() => Record<string | symbol, any>)
inject?:
| { [key: string]: InjectKey | { from?: InjectKey; default?: any } }
| Array<string>
model?: {
prop?: string
event?: string
}
parent?: Component
mixins?: Array<object>
name?: string
extends?: Component | object
delimiters?: [string, string]
comments?: boolean
inheritAttrs?: boolean
abstract?: any
_isComponent?: true
_propKeys?: Array<string>
_parentVnode?: VNode
_parentListeners?: object | null
_renderChildren?: Array<VNode> | null
_componentTag: string | null
_scopeId: string | null
_base: typeof Component
}
export type PropOptions = {
type?: Function | Array<Function> | null
default?: any
required?: boolean | null
validator?: Function | null
}