组合式 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 钩子中提供 commitdispatch 方法。

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 的示例应用程序。