Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Componentes
Componentes
El sistema de componentes es otro concepto importante en Vue, porque es una abstracción que
nos permite crear aplicaciones a gran escala compuestas de componentes pequeños,
independientes y, a menudo, reutilizables. Si lo pensamos, casi cualquier tipo de interfaz de
aplicación se puede abstraer en un árbol de componentes.
Pero esto supondría tener el mismo texto para cada tarea, que no es muy interesante. Es posible
que se pueda pasar datos de un scope o contexto padre a uno secundario en los componentes
hijos. Modifique la configuración del componente para que acepte una propiedad:
Vue.component('todo-item', {
// El componente todo-item ahora acepta una
// "propiedad", que es como un atributo personalizado.
// Esta propiedad es llamada todo.
props: ['todo'],
template: '<li>{{ todo.text }}</li>'
})
1. Vegetales
2. Queso
3. Cualquier otra cosa que se supone que los humanos coman
Este es un ejemplo ficticio, pero hemos logrado separar nuestra aplicación en dos unidades más
pequeñas, y el componente hijo está razonablemente bien desacoplado del componente padre a
través de la interfaz de propiedades. Ahora podemos mejorar aún más nuestro componente <todo-
item> con un template y lógica más complejas sin afectar la aplicación principal.
En una aplicación grande, es necesario dividir toda la aplicación en componentes para que el
desarrollo sea manejable. Hablaremos mucho más sobre los componentes más adelante en la
guía, pero aquí hay un ejemplo (imaginario) de cómo se vería el template de una aplicación con
componentes:
<div id="app">
<app-nav></app-nav>
<app-view>
<app-sidebar></app-sidebar>
<app-content></app-content>
</app-view>
</div>
Es posible que haya notado que los componentes de Vue son muy similares a Elementos
personalizados, que forman parte de las Especificaciones de Componentes Web. Esto se debe
a que la sintaxis de los componentes de Vue está modelada de forma flexible según la
especificación. Por ejemplo, los componentes de Vue implementan la API de Slot y el atributo
especial is. Sin embargo, hay algunas diferencias clave: