En esta lección del Curso de Vue.js, mejoraremos el código relacionado con el ejercicio de la lección anterior. Conocerás sobre los componentes de Vue.js que permiten encapsular código reusable, el cual es una de las características más poderosas de este framework. También por supuesto aprenderás a crear tus propios componentes con Vue.
Repositorio
Ver el código de esta lección en GitHub
Notas
- Para declarar un componente de forma global se hace dentro de un bloque de JavaScript, donde usamos el método
Vue.component()
que recibe dos parámetros: el nombre del componente y un objeto JavaScript con las opciones, de la siguiente manera:Vue.component('hello-world', { template: '<h2>Hello world!</h2>' });
- Recuerda agregar el elemento creado tag en el HTML para que pueda ser visualizado el mensaje:
<hello-world></hello-world>
- Las otras dos maneras de declarar un template para un componente, aparte de hacerlo dentro de éste, son:
- Usando una etiqueta
script
definiendotype=text/template
y un identificadorid
para hacer referencia en el componente. - Creando una etiqueta
template
e igualmente asignarle unid
para referenciarlo posteriormente.
- Usando una etiqueta
- Cuando el componente creado usa propiedades debemos declararlas de manera explícita en el atributo
props
dentro del objeto de opciones del componente, bien sea como un array o como un objeto JavaScript:- Como un array:
props: ['name', 'gender']
- Como un objeto, validando los datos que se están recibiendo en el componente:
props: { gender: {type: String, required:false, default:'m'}, name: {type: String, required:true} }
- Como un array:
- Podemos usar v-bind para enlazar aquellas propiedades del componente que queremos manejar dinámicamente.
- Como Vue.js sincroniza en una sola dirección (one-way-down) desde el padre al hijo, es decir, que si se actualiza una propiedad padre, se actualizará también el hijo, pero no viceversa. Para solucionar esto y forzar que se use two-way-binding debemos agregar el modificador .
sync
::years.sync="years_php"
¿Alguna pregunta o duda? Puedes hacerla en la sección de comentarios y no olvides compartir esta lección para que otros puedan aprender sobre este fantástico framework.
Material relacionado
- World Wide Web Consortium (W3C): http://www.w3c.es/
- Lección anterior: Clases, estilos y otros atributos dinámicos usando la directiva v-bind de Vue.js
- Introducción a las directivas de Vue.js con v-if, v-show y v-else
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Clases, estilos y otros atributos dinámicos usando la directiva v-bind de Vue.js Lección siguiente Crear listas con la directiva v-for de Vue.js