Vue3 API de Opciones
Las siguientes API se utilizan ampliamente en la API de Opciones de Vue para gestionar estado, ciclo de vida, slots, inyección de dependencias y otras funciones.
1. Opciones de Estado
| N.º | API y Descripción | Ejemplo |
|---|---|---|
| 1 | data La opción de datos del componente, utilizada para definir el estado del componente. |
data() { return { count: 0 }; } |
| 2 | props La opción props del componente, define los datos que el componente padre transmite al componente hijo. |
props: { msg: String } |
| 3 | computed Propiedad computada, utilizada para definir valores derivados basados en el estado del componente (data, props). |
computed: { doubledCount() { return this.count * 2; } } |
| 4 | methods La opción methods del componente, utilizada para definir la lógica de negocio del componente. |
methods: { increment() { this.count += 1; } } |
| 5 | watch Observa los cambios en los datos reactivos del componente y ejecuta callbacks. |
watch: { count(newVal) { console.log(newVal); } } |
| 6 | emits Define eventos personalizados que el componente puede emitir. |
emits: ['update'] |
| 7 | expose Expone explícitamente propiedades o métodos para que el componente padre pueda acceder a ellos. |
expose() { return { method } } |
2. Opciones de Renderizado
| N.º | API y Descripción | Ejemplo |
|---|---|---|
| 1 | template Define la plantilla HTML del componente. |
<template><button @click="increment">{{ count }}</button></template> |
| 2 | render Utiliza una función de renderizado en lugar de la plantilla. |
render(h) { return h('button', { on: { click: this.increment } }, this.count) } |
| 3 | compilerOptions Configura las opciones del compilador de plantillas. |
compilerOptions: { delimiters: ['{{', '}}'] } |
| 4 | slots Define los slots del componente. |
<slot></slot> |
3. Opciones de Ciclo de Vida
| N.º | API y Descripción | Ejemplo |
|---|---|---|
| 1 | beforeCreate Se llama antes de que el componente sea instanciado. |
beforeCreate() { console.log('Before Create') } |
| 2 | created Se llama después de que se haya creado la instancia del componente y se hayan establecido los datos. |
created() { console.log('Created') } |
| 3 | beforeMount Se llama antes de montar en el DOM, la plantilla ya ha sido compilada. |
beforeMount() { console.log('Before Mount') } |
| 4 | mounted Se llama después de que el componente se haya montado en el DOM. |
mounted() { console.log('Mounted') } |
| 5 | beforeUpdate Se llama después de que los datos cambien y antes de que el componente se vuelva a renderizar. |
beforeUpdate() { console.log('Before Update') } |
| 6 | updated Se llama después de que se complete la actualización del componente. |
updated() { console.log('Updated') } |
| 7 | beforeUnmount Se llama antes de que el componente sea desmontado. |
beforeUnmount() { console.log('Before Unmount') } |
| 8 | unmounted Se llama después de que el componente sea desmontado. |
unmounted() { console.log('Unmounted') } |
| 9 | errorCaptured Se llama al capturar errores de los componentes hijos. |
errorCaptured(err, vm, info) { console.error(err) } |
| 10 | renderTracked Se llama cuando los datos reactivos cambian y se vuelve a renderizar. |
renderTracked(event) { console.log('Render Tracked') } |
| 11 | renderTriggered Se llama cuando los datos reactivos desencadenan un re-renderizado. |
renderTriggered(event) { console.log('Render Triggered') } |
| 12 | activated Se llama cuando el componente es activado (solo para keep-alivecomponente). |
activated() { console.log('Activated') } |
| 13 | deactivated Se llama cuando el componente es desactivado (solo para keep-alivecomponente). |
deactivated() { console.log('Deactivated') } |
| 14 | serverPrefetch Hook para obtener datos durante el renderizado en el servidor. |
serverPrefetch() { return fetchData() } |
4. Opciones de Composición
| N.º | API y Descripción | Ejemplo |
|---|---|---|
| 1 | provide Proporciona dependencias a los componentes descendientes. |
provide('key', 'value') |
| 2 | inject Inyecta dependencias desde los componentes ancestros. |
inject('key') |
| 3 | mixins Introduce mixins externos para reutilizar lógica. |
mixins: [myMixin] |
| 4 | extends El componente extiende las opciones de otro componente. |
extends: MyComponent |
5. Otros Varios
| N.º | API y Descripción | Ejemplo |
|---|---|---|
| 1 | name El nombre del componente, generalmente utilizado para depuración. |
name: 'MyComponent' |
| 2 | inheritAttrs Controla si los atributos (attrs) del componente padre se heredan automáticamente en el elemento raíz. |
inheritAttrs: false |
| 3 | components Registra componentes locales para que puedan usarse en el componente actual. |
components: { LocalComponent } |
| 4 | directives Registra directivas locales para que puedan usarse en el componente actual. |
directives: { focus: FocusDirective } |
6. Instancia del Componente
| N.º | API y Descripción | Ejemplo |
|---|---|---|
| 1 | $data Obtiene el objeto de datos del componente. |
this.$data.count |
| 2 | $props Obtiene el objeto props del componente. |
this.$props.msg |
| 3 | $el Obtiene el elemento DOM donde está montado el componente. |
this.$el |
| 4 | $options Obtiene las opciones de configuración del componente. |
this.$options.name |
| 5 | $parent Obtiene la instancia del componente padre. |
this.$parent |
| 6 | $root Obtiene la instancia del componente raíz. |
this.$root |
| 7 | $slots Obtiene el contenido de los slots del componente. |
this.$slots.default |
| 8 | $refs Obtiene el objeto de referencias del componente. |
this.$refs.input |
| 9 | $attrs Obtiene todos los atributos no vinculados a los props del componente. |
this.$attrs |
| 10 | $watch() Observa los datos reactivos o propiedades computadas de la instancia del componente. |
this.$watch('count', (newCount) => { console.log(newCount) }) |
| 11 | $emit() Emite un evento personalizado. |
this.$emit('update', newVal) |
| 12 | $forceUpdate() Fuerza a Vue a volver a renderizar el componente. |
this.$forceUpdate() |
| 13 | $nextTick() Ejecuta un callback después de que finalice el próximo ciclo de actualización del DOM. |
this.$nextTick(() => { console.log('DOM updated') }) |