You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vue的setup()方法中访问Vuex store?

在setup()中访问Vuex Store的方法

setup函数在组件实例创建之前执行,内部没有指向组件实例的this,因此无法直接使用this.$store访问挂载的Vuex实例,你可以通过Vuex提供的useStore组合式API获取store实例:

  • 第一步:从vuex包中导入useStore方法
import { useStore } from 'vuex'
  • 第二步:在setup内调用useStore()得到store实例,即可正常操作state、触发mutation/action:
// 选项式API搭配setup写法
export default {
  setup() {
    const store = useStore()
    // 访问state示例(建议用computed包裹保证响应性)
    const pageTitle = computed(() => store.state.app.title)
    // 触发mutation示例
    const setTitle = (title) => store.commit('app/setTitle', title)
    // 触发action示例
    const initAppConfig = () => store.dispatch('app/initConfig')

    return {
      pageTitle,
      setTitle,
      initAppConfig
    }
  }
}

如果使用<script setup>语法糖,写法更简洁:

<script setup>
import { useStore } from 'vuex'
import { computed } from 'vue'

const store = useStore()
const pageTitle = computed(() => store.state.app.title)

const updateTitle = (newTitle) => {
  store.commit('app/setTitle', newTitle)
}
</script>

提示:如果项目使用TypeScript,你可以为useStore自定义类型推导,避免store默认为any类型的问题


内容的提问来源于stack exchange,提问作者marcuse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:39:01