Sobes.tech
Middle

Welke concept van toestandbeheer implementeert Vuex in JavaScript?

sobes.tech AI

Antwoord van AI

Vuex implementeert het concept van een gecentraliseerde store voor alle componenten van een Vue.js-toepassing.

Belangrijke concepten van Vuex:

  • State: Eén enkele bron van waarheid voor de gegevens van de toepassing.
  • Getters: Afgeleide eigenschappen van de state, gebruikt voor het berekenen of filteren van gegevens.
  • Mutations: Synchrone functies die de state wijzigen. Ze zijn de enige manier om de state te veranderen.
  • Actions: Asynchrone operaties die elke willekeurige logica kunnen bevatten en mutations aanroepen.
  • Modules: Stellen je in staat om de store op te splitsen in kleinere, zelfstandige eenheden.

Voorbeeld van werken met Vuex:

// mutation
const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
    incrementAsync ({ commit }) {
      setTimeout(() => {
        commit('increment')
      }, 1000)
    }
  },
  getters: {
    doubleCount (state) {
      return state.count * 2
    }
  }
})

// mutation aanroepen vanuit component
this.$store.commit('increment')

// actie aanroepen vanuit component
this.$store.dispatch('incrementAsync')

// state ophalen vanuit component
this.$store.state.count

// getter ophalen vanuit component
this.$store.getters.doubleCount

Vuex biedt een gestructureerde en voorspelbare manier om de staat te beheren, vooral in grote SPA's, door het afdwingen van het "unidirectionele datastroom" patroon.