Composition API

To access the store within the setup hook, you can call the useStore function. This is the equivalent of retrieving this.$store within a component using the Option API.

import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()
  }
}

Accessing State and Getters

In order to access state and getters, you will want to create computed references to retain reactivity. This is the equivalent of creating computed properties using the Option API.

import { computed } from 'vue'
import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()

    return {
      // access a state in computed function
      count: computed(() => store.state.count),

      // access a getter in computed function
      double: computed(() => store.getters.double)
    }
  }
}

Accessing Mutations and Actions

When accessing mutations and actions, you can simply provide the commit and dispatch function inside the setup hook.

import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()

    return {
      // access a mutation
      increment: () => store.commit('increment'),

      // access an action
      asyncIncrement: () => store.dispatch('asyncIncrement')
    }
  }
}

Examples

Check out the Composition API example to see example applications utilising Vuex and Vue's Composition API.