Instancia de Componente
INFO
Esta página documenta las propiedades y métodos integrados expuestos en la instancia pública del componente, es decir, this.
Todas las propiedades listadas en esta página son de solo lectura (excepto las propiedades anidadas en $data).
$data
El objeto devuelto por la opción data, hecho reactivo por el componente. La instancia del componente proxy (actúa como proxy para) el acceso a las propiedades de su objeto data.
Tipo
tsinterface ComponentPublicInstance { $data: object }
$props
Un objeto que representa las props actuales y resueltas del componente.
Tipo
tsinterface ComponentPublicInstance { $props: object }Detalles
Solo se incluirán las
propsdeclaradas a través de la opciónprops. La instancia del componente proxy (actúa como proxy para) el acceso a las propiedades de su objetoprops.
$el
El nodo DOM raíz que la instancia del componente está gestionando.
Tipo
tsinterface ComponentPublicInstance { $el: any }Detalles
$elseráundefinedhasta que el componente sea montado.- Para componentes con un único elemento raíz,
$elapuntará a ese elemento. - Para componentes con una raíz de texto,
$elapuntará al nodo de texto. - Para componentes con múltiples nodos raíz,
$elserá el nodo DOM marcador de posición que Vue usa para rastrear la posición del componente en el DOM (un nodo de texto, o un nodo de comentario en modo de hidratación SSR).
TIP
Para mayor consistencia, se recomienda usar Template Refs para acceder directamente a los elementos en lugar de depender de
$el.- Para componentes con un único elemento raíz,
$options
Las opciones de componente resueltas utilizadas para instanciar la instancia de componente actual.
Tipo
tsinterface ComponentPublicInstance { $options: ComponentOptions }Detalles
El objeto
$optionsexpone las opciones resueltas para el componente actual y es el resultado de la fusión de estas posibles fuentes:- Mixins globales
- Base de
extendsdel componente - Mixins del componente
Normalmente se utiliza para soportar opciones de componente personalizadas:
jsconst app = createApp({ customOption: 'foo', created() { console.log(this.$options.customOption) // => 'foo' } })Ver también
app.config.optionMergeStrategies
$parent
La instancia padre, si la instancia actual tiene una. Será null para la propia instancia raíz.
Tipo
tsinterface ComponentPublicInstance { $parent: ComponentPublicInstance | null }
$root
La instancia de componente raíz del árbol de componentes actual. Si la instancia actual no tiene padres, este valor será ella misma.
Tipo
tsinterface ComponentPublicInstance { $root: ComponentPublicInstance }
$slots
Un objeto que representa los slots pasados por el componente padre.
Tipo
tsinterface ComponentPublicInstance { $slots: { [name: string]: Slot } } type Slot = (...args: any[]) => VNode[]Detalles
Normalmente se utiliza al crear manualmente render functions, pero también se puede usar para detectar si un slot está presente.
Cada slot se expone en
this.$slotscomo una función que devuelve un array de vnodes bajo la clave correspondiente al nombre de ese slot. El slot predeterminado se expone comothis.$slots.default.Si un slot es un scoped slot, los argumentos pasados a las funciones del slot están disponibles para el slot como sus
slot props.Ver también Render Functions - Rendering Slots
$refs
Un objeto de elementos DOM e instancias de componente, registrados a través de template refs.
Tipo
tsinterface ComponentPublicInstance { $refs: { [name: string]: Element | ComponentPublicInstance | null } }Ver también
$attrs
Un objeto que contiene los atributos de paso (fallthrough attributes) del componente.
Tipo
tsinterface ComponentPublicInstance { $attrs: object }Detalles
Los atributos de paso son atributos y manejadores de eventos pasados por el componente padre, pero no declarados como una prop o un evento emitido por el hijo.
Por defecto, todo en
$attrsse heredará automáticamente en el elemento raíz del componente si solo hay un único elemento raíz. Este comportamiento se deshabilita si el componente tiene múltiples nodos raíz, y se puede deshabilitar explícitamente con la opcióninheritAttrs.Ver también
$watch()
API imperativa para crear observadores (watchers).
Tipo
tsinterface ComponentPublicInstance { $watch( source: string | (() => any), callback: WatchCallback, options?: WatchOptions ): StopHandle } type WatchCallback<T> = ( value: T, oldValue: T, onCleanup: (cleanupFn: () => void) => void ) => void interface WatchOptions { immediate?: boolean // default: false deep?: boolean // default: false flush?: 'pre' | 'post' | 'sync' // default: 'pre' onTrack?: (event: DebuggerEvent) => void onTrigger?: (event: DebuggerEvent) => void } type StopHandle = () => voidDetalles
El primer argumento es la fuente a observar (
watch source). Puede ser una cadena con el nombre de una propiedad del componente, una cadena de ruta simple separada por puntos, o una función getter.El segundo argumento es la función de callback. El callback recibe el nuevo valor y el valor antiguo de la fuente observada.
immediate: dispara el callback inmediatamente al crear el observador. El valor antiguo seráundefineden la primera llamada.deep: fuerza un recorrido profundo de la fuente si es un objeto, para que el callback se dispare en mutaciones profundas. Consulta Deep Watchers.flush: ajusta el tiempo de vaciado del callback. Consulta Callback Flush Timing ywatchEffect().onTrack / onTrigger: depura las dependencias del observador. Consulta Watcher Debugging.
Ejemplo
Observar el nombre de una propiedad:
jsthis.$watch('a', (newVal, oldVal) => {})Observar una ruta separada por puntos:
jsthis.$watch('a.b', (newVal, oldVal) => {})Usar un
getterpara expresiones más complejas:jsthis.$watch( // cada vez que la expresión `this.a + this.b` produce // un resultado diferente, se llamará al manejador. // Es como si estuviéramos observando una propiedad computada // sin definir la propiedad computada en sí. () => this.a + this.b, (newVal, oldVal) => {} )Detener el observador:
jsconst unwatch = this.$watch('a', cb) // más tarde... unwatch()Ver también
$emit()
Dispara un evento personalizado en la instancia actual. Cualquier argumento adicional se pasará a la función de callback del listener.
Tipo
tsinterface ComponentPublicInstance { $emit(event: string, ...args: any[]): void }Ejemplo
jsexport default { created() { // solo evento this.$emit('foo') // con argumentos adicionales this.$emit('bar', 1, 2, 3) } }Ver también
$forceUpdate()
Fuerza a la instancia del componente a renderizar de nuevo.
Tipo
tsinterface ComponentPublicInstance { $forceUpdate(): void }Detalles
Esto rara vez debería ser necesario dado el sistema de reactividad totalmente automático de Vue. Los únicos casos en los que podrías necesitarlo es cuando has creado explícitamente un estado de componente no reactivo utilizando APIs de reactividad avanzadas.
$nextTick()
Versión ligada a la instancia de la API global nextTick().
Tipo
tsinterface ComponentPublicInstance { $nextTick( callback?: (this: ComponentPublicInstance) => void ): Promise<void> }Detalles
La única diferencia con la versión global de
nextTick()es que el callback pasado athis.$nextTick()tendrá su contextothisligado a la instancia del componente actual.Ver también
nextTick()








