Mutaciones en Vuex: Gestión y Actualización del Estado Reactivo
Clase 41 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
¿Qué son y para qué sirven las mutations en Vuex?
Las mutations en Vuex son esenciales para actualizar el estado de una aplicación en Vue. No actualizan el estado directamente; en su lugar, permiten registrar y controlar todos los cambios aplicados, facilitando la depuración del código. Esto es crucial cuando múltiples componentes modifican el estado simultáneamente, ya que ayuda a determinar qué componente está realizando cambios específicos.
¿Cómo funcionan las mutations similar a los eventos?
Las mutations se definen en el store, y actúan como manejadores de eventos. Los componentes de Vue ejecutan estas mutations mediante el método commit, que es equivalente al emit de los eventos. Este método precisa el nombre de la mutación a ejecutar, lo que permite registrar el cambio y actualizar el estado.
// Definición de mutations en store.js
mutations: {
increment: (state) => state.count++,
decrement: (state) => state.count--,
}
¿Cómo se implementan las mutations en un componente Vue?
- En el componente Vue, se utiliza el método
commitpara llamar a las mutations:
methods: {
increment() {
this.$store.commit('increment');
},
decrement() {
this.$store.commit('decrement');
}
}
- Así, cuando se hace clic en los botones relacionados, se actualiza el valor del
counten el estado y el componente se actualiza automáticamente para reflejar estos cambios.
¿Qué son los payloads en una mutación?
En las mutations se puede utilizar un payload para pasar parámetros configurables al estado. Usualmente, este es un objeto que permite llevar más de un parámetro, proporcionando flexibilidad y personalización en las operaciones.
Ejemplo con payloads
Supongamos que necesitamos incrementar el valor count por un número específico:
mutations: {
increment(state, payload = { number: 1 }) {
state.count += payload.number;
}
}
En este fragmento de código, al no recibir un payload, se asigna un objeto vacío de manera predeterminada para evitar errores.
Implementación en un componente
En el componente Vue, puede adaptarse para manejar increments personalizados:
methods: {
increment(payload) {
this.$store.commit('increment', payload);
}
}
// Utilizando payload:
this.increment({ number: 10 });
¿Cómo utilizar mapMutations para optimizar el código?
Vuex ofrece mapMutations, que permite extraer las mutations ya definidas en el store, evitando la duplicación del código en cada componente.
Implementando mapMutations
import { mapMutations } from 'vuex';
export default {
methods: {
...mapMutations(['increment', 'decrement']),
incrementTen() {
this.$store.commit('increment', { number: 10 });
}
}
}
Con mapMutations, es posible combinar los métodos del store con aquellos personalizados en el componente, optimizando la gestión del estado y la reutilización del código.
Si incrementTen necesita utilizarse en varios lugares, puede ser llevada al store para mejorar la accesibilidad y la consistencia.
Vuex y las mutations brindan una forma sistemática de gestionar el flujo de datos en las aplicaciones Vue, haciendo que la gestión del estado sea más clara y eficiente. Al comprender y aplicar correctamente estos conceptos, los desarrolladores pueden construir aplicaciones reactivas y escalables de manera más eficaz.