# API de Aplicación
En Vue 3, las APIs que mutan globalmente el comportamiento de Vue son ahora movidos a la instancia de aplicación creada por el nuevo método createApp
. Además, sus efectos son ahora limitados a la instancia de esa aplicación específica.
import { createApp } from 'vue'
const app = createApp({})
2
3
La invocación de createApp
retorna una instancia de aplicación. Esta instancia proporciona un contexto de aplicación. El árbol completo de componentes montado por la instancia de aplicación comparte el mismo contexto, lo cual proporciona las configuraciones que antes fueron "global" en Vue 2.x.
Además, debido a que el método createApp
retorna la instancia de aplicación misma, puede encadenar otros métodos después de el, los cuales se pueden encontrar en las secciones siguientes.
# component
Argumentos:
{string} name
{Function | Object} definition (opcional)
Retorna:
- La instancia de la aplicación si un argumento
definition
fue pasado - La definición del componente si un argumento
definition
no fue pasado
- La instancia de la aplicación si un argumento
Uso:
Registrar o recuperar un componente global. La registración también automáticamente establece la
name
del componente con el parámetroname
dado.Ejemplo:
import { createApp } from 'vue'
const app = createApp({})
// registrar un objeto de opciones
app.component('my-component', {
/* ... */
})
// recuperar un componente registrado
const MyComponent = app.component('my-component')
2
3
4
5
6
7
8
9
10
11
- Vea también: Básicos de Componentes
# config
- Uso:
Un objeto que contiene las configuraciones de la aplicación.
- Ejemplo:
import { createApp } from 'vue'
const app = createApp({})
app.config = {...}
2
3
4
- Vea también: Configuración de Aplicación
# directive
Argumentos:
{string} name
{Function | Object} definition (opcional)
Retorna:
- La instancia de aplicación si un argumento
definition
fue pasado - La definición de la directiva si un argumento
definition
no fue pasado
- La instancia de aplicación si un argumento
Uso:
Registrar o recuperar una directiva global.
Ejemplo:
import { createApp } from 'vue'
const app = createApp({})
// registrar
app.directive('my-directive', {
// Las directivas tienen un conjunto de hooks de ciclo de vida:
// llamado antes de que se apliquen los atributos o escuchadores de evento del elemento vinculado
created() {},
// llamado antes de que se monte el componente padre del elemento vinculado
beforeMount() {},
// llamado cuando se monte el componente padre del elemento vinculado
mounted() {},
// llamado antes de que se actualice el VNode del componente que contenga el elemento
beforeUpdate() {},
// llamado después de que se hayan actualizado el VNode del componente que contenga el elemento y los VNodes de hijos de de dicho componente
updated() {},
// llamado antes de que se desmonte el componente padre del elemento vinculado
beforeUnmount() {},
// llamado cuando se desmonte el componente padre del elemento vinculado
unmounted() {}
})
// registrar (directiva funcional)
app.directive('my-directive', () => {
// este será llamado como `mounted` y `updated`
})
// captador, retorna la definición de la directiva si está registrada
const myDirective = app.directive('my-directive')
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Se pasan estos argumentos a los hooks de directiva:
# el
El elemento al que está vinculada la directiva. Este puede ser utilizado para manipular el DOM directamente.
# binding
On objeto que contiene las propiedades siguientes.
instance
: la instancia del componente dónde la directiva está utilizada.value
: El valor pasado a la directiva. Por ejemplo env-my-directive="1 + 1"
, el valor sería2
.oldValue
: El valor anterior, solo disponible enbeforeUpdate
yupdated
. Es disponible sea o no que el valor haya cambiado.arg
: El argumento pasado a la directiva, si hay. Por ejemplo env-my-directive:foo
, el argumento sería"foo"
.modifiers
: Un objeto que contiene modificadores, si hay. Por ejemplo env-my-directive.foo.bar
, el objeto de modificadores sería{ foo: true, bar: true }
.dir
: un objeto, pasado como un parámetro cuando la directiva esté registrada. Por ejemplo, en la directiva
app.directive('focus', {
mounted(el) {
el.focus()
}
})
2
3
4
5
dir
sería el objeto siguiente:
{
mounted(el) {
el.focus()
}
}
2
3
4
5
# vnode
Un plan del elemento DOM real recibido como un argumento arriba.
# prevNode
El nodo virtual anterior, solo disponible en los hooks beforeUpdate
y updated
.
Note
Aparte de el
, debería tratar estos argumentos como de solo lectura y nunca modificarlos. Si necesita compartir información a través de hooks, es recomendado hacerlo mediante dataset (opens new window) del elemento.
- Vea también: Directivas Personalizadas
# mixin
Argumentos:
{Object} mixin
Retorna:
- La instancia de aplicación
Uso:
Aplicar un mixin en el alcance entero de la aplicación. Una vez registrado se pueden utilizar en la plantilla de cualquier componente dentro de la aplicación actual. Este puede ser utilizado por los autores de plugins para inyectar comportamientos personalizados en componentes. No es recomendado en el código de aplicación.
Vea también: Mixin Global
# mount
Argumentos:
{Element | string} rootContainer
{boolean} isHydrate (opcional)
Retorna:
- La instancia del componente raíz
Uso:
El
innerHTML
del elemento DOM proporcionado será reemplazado con la plantilla renderizada del componente raíz de la aplicación.Ejemplo:
<body>
<div id="my-app"></div>
</body>
2
3
import { createApp } from 'vue'
const app = createApp({})
// Hacer algo de preparación necesario
app.mount('#my-app')
2
3
4
5
- Vea también:
# provide
Argumentos:
{string | Symbol} key
value
Retorna:
- La instancia de la aplicación
Uso:
Establece un valor que pueda ser inyectado en todos componentes dentro de la aplicación. Los componentes deben utilizar
inject
para recibir los valores proporcionados.Desde una perspectiva de
provide
/inject
, la aplicación puede ser tratado como el ancestro de nivel raíz, con el componente raíz como su único hijo.Este método no se debe confundir con la opción de componente provide o la función provide en la API de composición. Mientras estos son también un parte del mismo mecanismo de
provide
/inject
, son utilizados para configurar valores proporcionados por un componente en vez de una aplicación.Proporcionar valores mediante la aplicación es específicamente útil cuando escribir plugins, como los plugins típicamente no serían capaz de proporcionar valores utilizando componentes. Es una alternativa para utilizar globalProperties.
Note
Las vinculaciones de
provide
yinject
NO son reactivas. Este es a propósito. Sin embargo, si pasa un objeto reactivo abajo, las propiedades en ese objeto se mantienen reactivas.Ejemplo:
Inyectar una propiedad en el componente raíz, con un valor proporcionado por la aplicación:
import { createApp } from 'vue'
const app = createApp({
inject: ['user'],
template: `
<div>
{{ user }}
</div>
`
})
app.provide('user', 'administrator')
2
3
4
5
6
7
8
9
10
11
12
- Vea también:
# unmount
Uso:
Desmonta un componente raíz de la instancia de aplicación.
Ejemplo:
<body>
<div id="my-app"></div>
</body>
2
3
import { createApp } from 'vue'
const app = createApp({})
// Hacer algo de preparación necesario
app.mount('#my-app')
// La aplicación será desmontada 5 segundos después de montarse
setTimeout(() => app.unmount(), 5000)
2
3
4
5
6
7
8
# use
Argumentos:
{Object | Function} plugin
...options (opcional)
Retorna:
- La instancia de aplicación
Uso:
Instalar un plugin de Vue.js. Si el plugin es un objeto, debe exponer un método
install
, si es una función de sí mismo, será tratado como el métodoinstall
.El método
install
será llamado con la aplicación como su primer argumento. Cualquierasoptions
pasadas ause
serán pasadas en argumentos posteriores.Cuando este método es llamado en el mismo plugin múltiples veces, el plugin solo se instala una vez.
Ejemplo:
import { createApp } from 'vue' import MyPlugin from './plugins/MyPlugin' const app = createApp({}) app.use(MyPlugin) app.mount('#app')
1
2
3
4
5
6
7Vea también: Plugins
# version
Uso:
Proporciona el vesión de Vue instalado como una cadena de caracteres. Este es específicamente útil para plugins de la comunidad, dónde utilizaría estrategias diferentes para versiones distintos.
Ejemplo:
export default { install(app) { const version = Number(app.version.split('.')[0]) if (version < 3) { console.warn('Este plugin requiere Vue 3') } // ... } }
1
2
3
4
5
6
7
8
9
10
11Vea también: API Global - versión