...
En este ejemplo, sólo se están importando dos módulos. Podemos añadir la funcionalidad directamente en este archivo, pero si tenemos estados de diferentes ámbitos, es mejor tener varios módulos para favorecer la legibilidad del código. Los módulos se definirán en archivosarchivos .jsjs que se encontrarán enen src/store/modules/. Por ejemplo, moduloCuenta.js:
| Bloque de código | ||
|---|---|---|
| ||
export default {
// namespaced para mapear especificando el módulo ...mapState('nombreModulo', ['estado', 'otroestado'])
// también para los dispatch -> dispatch("modulo/nombreAction")
namespaced: true,
// ESTADO
state: {
cuenta: 0,
},
// MUTACIONES: sólo estas pueden modificar el estado
mutations: {
SUMAR(state, valor) {
state.cuenta += valor;
},
RESETEAR(state) {
state.cuenta = 0;
},
},
// ACCIONES: se encargan de la lógica de negocio y llaman a las mutaciones
actions: {
sumarX({ commit }, valor) {
commit("SUMAR", valor);
},
resetear({ commit }) {
commit("RESETEAR");
},
},
// GETTERS: para propiedades calculadas
getters: {
isMillonario: (state) => state.cuenta > 999999,
},
}; |
...