Comunicación entre Componentes en Vue: Eventos de Hijo a Padre
Clase 28 de 53 • Curso Profesional de Vue.js 2
Contenido del curso
- 3

Herramientas esenciales para desarrollar con BioJS y NodeJS
06:13 - 4

Creación de una Aplicación Vue.js con CLI y Webpack Simple
12:50 - 5

Configuración y uso de Webpack en proyectos JavaScript
10:38 - 6

Configuración y uso de Babel para compatibilidad JavaScript
05:06 - 7

Configuración de eSlimt con EstándarJS y Webpack
15:34 - 8

Integración de SaaS y Bulma en Aplicaciones Vue.js
06:18 - 9

Configuración de Pag para optimizar el workflow de desarrollo HTML
04:23 - 10
Diseño de Mockups: Práctica y Colaboración en Comunidad
00:20 - 11
Creación de Vistas con Mockups y Vue.js
00:32
- 12

Expresiones en Vue: Manipulación Dinámica del DOM
03:49 - 13

Directivas de Vue: Uso y Funciones Principales
06:22 - 14

Data Binding y Directivas en Vue: bmodel y bevined
04:11 - 15

Propiedades Computadas en JavaScript: Creación y Uso Práctico
04:13 - 16

Uso de Watchers en Biomóvil para Gestión de Cambios de Propiedades
02:25 - 17

Manipulación de Eventos y Métodos en Aplicaciones Web
06:12 - 18

Creación de Interfaz con Vue.js y Framework CSS Bulma
19:03 - 19
Manipulación del DOM con Vue.js: Práctica y Ejercicios
03:00
- 23

Creación y Registro de Componentes en Vue.js
08:46 - 24

Creación de Componentes en Vue.js con Bulma para Platzi Music
09:50 - 25

Reactividad y Virtual DOM en Vue.js: Conceptos y Soluciones
06:14 - 26

Ciclo de Vida de Componentes en Vue.js: Hooks y Ejecución de Código
05:38 - 27

Comunicación entre Componentes en Vue.js: Props y Eventos
23:27 - 28

Comunicación entre Componentes en Vue: Eventos de Hijo a Padre
12:04 - 29

Uso de Slots para Inyección Dinámica de HTML en Componentes Vue
13:42 - 30

Comunicación entre Componentes Vue con Event Bus y Plugins
19:19
- 39

Gestión de Estados Centralizados con la Librería BuX
03:41 - 40

Integración de VueX y arquitectura Flux en Vue.js
17:32 - 41

Mutaciones en Vuex: Gestión y Actualización del Estado Reactivo
08:16 - 42

Uso de Getters en Vuex para Acceso Personalizado de Estado
07:35 - 43

Acciones asincrónicas en Vuex: cómo implementarlas y utilizarlas
07:55 - 44

Integración de VueX y Babel en PlatziMusic
26:37
¿Cómo enviar información desde un componente hijo hacia un componente padre en Vue.js?
Al trabajar con Vue.js, la comunicación entre componentes puede ser crucial para el funcionamiento de tu aplicación. Mientras que pasar datos desde un componente padre a un hijo se logra usando propiedades (props), el camino inverso —de un hijo a un padre— se realiza mediante eventos. Aquí te guiamos sobre cómo establecer esta comunicación.
¿Cómo emitir eventos desde un componente hijo?
Emitir un evento desde un componente hijo permite que el componente padre "escuche" y reaccione a acciones específicas iniciadas por el hijo. Aquí te mostramos cómo lograrlo:
-
Agregar directiva
v-on: Empezamos por adjuntar un evento a un elemento, como un botón dentro del componente hijo. Esto se puede hacer con la directivav-ono usando el atajo@. Por ejemplo:<button @click="selectTrack">Play</button> -
Crear el método para manejar el evento: En el objeto
methodsdel componente, definimos la función que llamaremos con el evento:methods: { selectTrack() { this.$emit('select', this.trackId); } } -
Usar
$emitpara emitir un evento: Utilizamos el método$emit()para enviar el evento al componente padre. El primer argumento de$emites el nombre del evento y el segundo es la información que deseamos pasar, en este casotrackId.
¿Cómo escucha el componente padre el evento emitido por el hijo?
Una vez que el hijo emite el evento, el componente padre debe estar listo para capturarlo y responder adecuadamente. Aquí te explicamos cómo hacerlo:
-
Usar la directiva
v-onpara escuchar eventos: Dentro del componente padre, escuchamos el evento utilizando la directivav-on:<Track @select="setSelectedTrack" /> -
Definir el método correspondiente en el padre: En el objeto
methodsdel componente padre, creamos una función para manejar el evento recibido:methods: { setSelectedTrack(id) { this.selectedTrack = id; } } -
Actualizar el estado del componente padre: Dentro del método, actualizamos el estado o realizamos acciones basadas en la información obtenida del evento.
¿Cómo mejorar el código con Vue.js y estilos CSS?
La reactividad y el manejo de estilos son elementos esenciales en las aplicaciones Vue.js. Aquí te ofrecemos algunos consejos para mejorar la interacción y presentación de tus componentes:
-
Destacar elementos seleccionados: Utiliza clases CSS para resaltar el componente seleccionado. Por ejemplo, puedes aplicar una clase
isActiveusando v-bind:<template> <div :class="{ isActive: t.id === selectedTrack }" v-for="t in tracks"> <!-- contenido --> </div> </template> -
Usar
scopeden estilos CSS: Para evitar que los estilos CSS afecten globalmente, utiliza el atributoscopeden tus etiquetas<style>:<style scoped> .content { min-height: 40px; } </style>
¿Por qué es importante la comunicación padre-hijo y viceversa?
La comunicación entre componentes de un proyecto Vue.js es esencial para mantener la inmutabilidad y reactividad de los props. Las props no deben modificarse directamente en el hijo. Por lo tanto, siempre que sea necesario actualizar algo que influya en el padre, el hijo debe notificar a través de eventos. Este modelo de comunicación asegura una aplicación Vue.js estructurada, eficiente y fácil de mantener.