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

如何在Pinia的Getter中获取当前路由?

实现Pinia仓库的路由相关Getter

以下是满足需求的完整Pinia仓库代码实现:

import { defineStore } from 'pinia'
import { useRoute } from 'vue-router'

export const useSidebarStore = defineStore('sidebar', {
  state: () => {
    return {
      full: true // 可通过点击侧边栏切换按钮触发状态变更
    }
  },
  getters: {
    // 返回当前路由实例的getter
    currentRoute() {
      return useRoute()
    },
    // 判断当前路由为settings时次级侧边栏是否展开
    secondarySidebarOpen(_, getters) {
      // 根据实际路由配置调整判断条件,比如用路由name或path
      // 示例:匹配path为'/settings'的路由
      return getters.currentRoute.path === '/settings'
      // 若用路由name匹配,可改为:
      // return getters.currentRoute.name === 'settings'
    }
  },
  actions: {
  }
})

export default useSidebarStore

代码说明:

  • currentRoute Getter:通过vue-router提供的useRoute()获取当前路由实例,Pinia会自动跟踪路由的响应式变化,确保该getter能实时返回最新路由状态。
  • secondarySidebarOpen Getter:依赖currentRoute getter,通过判断当前路由的path或name是否为settings,返回次级侧边栏的展开状态。请根据项目实际的路由配置调整判断条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:10:38