组合式 API
要在 setup 钩子中访问 store,可以调用 useStore 函数。这等同于使用选项 API 在组件中检索 this.$store。
import { useStore } from 'vuex'
export default {
  setup () {
    const store = useStore()
  }
}
访问状态和 Getter
为了访问状态和 Getter,您需要创建 computed 引用以保留响应性。这等同于使用选项 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)
    }
  }
}
访问 Mutation 和 Action
访问 Mutation 和 Action 时,您只需在 setup 钩子中提供 commit 和 dispatch 方法。
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')
    }
  }
}
示例
查看 组合式 API 示例,以查看利用 Vuex 和 Vue 的组合式 API 的示例应用程序。