No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Espacios de nombres

12/19
Recursos

Aportes 4

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

馃憖 Solo para aclarar:
Se puede acceder al m贸dulo global desde los getters y los actions, utilizadando rootState y rootGetters, pero no se pueden acceder directamente desde las mutations, para eso tenemos que crear un actions que llame a la mutations en el contexto global pasando { root: true } como tercer argumento a dispatch y commit.

actions: {
      someAction ({ dispatch, commit, getters, rootGetters }) {
        dispatch('someOtherAction', null, { root: true }) // -> 'someOtherAction'

        commit('someMutation', null, { root: true }) // -> 'someMutation'
      },
      someOtherAction (ctx, payload) { ... }
    }

Espacios de nombres

.
Los espacios de nombres (namespaces) en Vuex son una caracter铆stica que permite organizar los m贸dulos en grupos l贸gicos y separados. Cuando se utiliza un espacio de nombres, todos los nombres de las mutaciones, acciones y getters de un m贸dulo se prefijan con el nombre del espacio de nombres, lo que evita posibles conflictos de nombres entre m贸dulos.
.
Para utilizar un espacio de nombres en un m贸dulo, se debe definir la propiedad namespaced en el objeto del m贸dulo y establecerla en true. Por ejemplo:

const myModule = {
  namespaced: true,
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++
    }
  },
  actions: {
    incrementAsync({ commit }) {
      setTimeout(() => {
        commit('increment')
      }, 1000)
    }
  },
  getters: {
    getCount: state => state.count
  }
}

En este ejemplo, se establece la propiedad namespaced en true en el objeto myModule, lo que indica que se debe utilizar un espacio de nombres para todas las mutaciones, acciones y getters de este m贸dulo.
.
Para acceder a una mutaci贸n, acci贸n o getter en un m贸dulo con espacio de nombres, se utiliza la sintaxis de diagonal y se incluye el nombre del espacio de nombres antes del nombre de la mutaci贸n, acci贸n o getter. Por ejemplo:

...mapState('myModule/count') // llama el estado count en myModule
...mapActions('myModule/incrementAsync') // llama a la acci贸n incrementAsync en myModule

Otra forma de acceder:

...mapState('myModule', ['count'])
...mapActions('myModule', ['incrementAsync'])

En resumen, los espacios de nombres en Vuex se utilizan para organizar los m贸dulos en grupos l贸gicos y separados, lo que evita posibles conflictos de nombres entre m贸dulos. Al definir la propiedad namespaced en true en el objeto del m贸dulo, se indica que se debe utilizar un espacio de nombres para todas las mutaciones, acciones y getters de ese m贸dulo.

S铆 no les sirve al final, solo corrige el actions.

actions: {
    async updateUsername({ commit, state, rootState }, username) {
      console.log("update username action!", state.username, username);
      const user = await getUsers(1);
      console.log(user);
      commit(COMMIT_UPDATE_USERNAME, user.username);
      if (state.username) {
        commit(COMMIT_SET_STATUS, "active", { root: true });
        console.log("status", rootState.status);
      }
    },
  }
si no les corre el c贸digo cambiar en views/ HomeView.vue ```js :status="profile.status" ```por ```js :status="status" ```聽 聽 聽 :status="status"