We expose a subset of properties on the internal instance as they are useful for advanced external libraries and tools.

interface ComponentInternalInstance {
    appContext: AppContext;
    attrs: Data;
    data: Data;
    effect: ReactiveEffect<any>;
    emit: ((event: string, ...args: any[]) => void);
    exposeProxy: null | Record<string, any>;
    exposed: null | Record<string, any>;
    isDeactivated: boolean;
    isMounted: boolean;
    isUnmounted: boolean;
    parent: null | ComponentInternalInstance;
    props: Data;
    proxy: null | ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}>;
    refs: Data;
    root: ComponentInternalInstance;
    slots: InternalSlots;
    subTree: VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }>;
    type: ConcreteComponent<{}, any, any, ComputedOptions, MethodOptions, {}, any>;
    uid: number;
    update: SchedulerJob;
    vnode: VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }>;
}

Properties

appContext: AppContext
attrs: Data
data: Data
effect: ReactiveEffect<any>

Render effect instance

emit: ((event: string, ...args: any[]) => void)
exposeProxy: null | Record<string, any>
exposed: null | Record<string, any>
isDeactivated: boolean
isMounted: boolean
isUnmounted: boolean
props: Data
proxy: null | ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}>
refs: Data
slots: InternalSlots
subTree: VNode<RendererNode, RendererElement, {
    [key: string]: any;
}>

Root vnode of this component's own vdom tree

type: ConcreteComponent<{}, any, any, ComputedOptions, MethodOptions, {}, any>
uid: number
update: SchedulerJob

Bound effect runner to be passed to schedulers

vnode: VNode<RendererNode, RendererElement, {
    [key: string]: any;
}>

Vnode representing this component in its parent's vdom tree