vue3在路由route.js中获取不到仓库pinia中store里面的值

原因:小仓库(useUserStore )必须有大仓库(pinia)才能运行,在组件中能使用pinia仓库的数据,是因为在main.ts中已经在vue上面挂载了大仓库(pinia),但是route.js不是vue组件,没有被挂载大仓库,所以不能运行

解决办法:把大仓库引进来

import {createPinia} from 'pinia'
// 创建大仓库
let pinia= createPinia()
export default pinia

使用route.js

import pinia from './store'
// 获取用户相关的小仓库内部token数据
import useUserStore from "./store/modules/user";
let userStore = useUserStore(pinia)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Pinia 是一个基于 Vue 3 的状态管理库,相比于 Vuex,它更加轻量且易于使用。下面是一个基本的 `store/index.js` 文件的模板: ```js import { defineStore } from 'pinia' export const useStore = defineStore('store', { state: () => ({ // 状态属性 }), actions: { // 异步操作 }, getters: { // 计算属性 }, // 可选的 mutation 及其操作 // mutations: {} }) ``` 在这个文件,我们首先引入 `defineStore` 函数,它是创建 Pinia Store 的工厂函数。接着,我们定义了一个名为 `useStore` 的常量,它是通过 `defineStore` 创建的一个 Store 实例。 在 `defineStore` 的第一个参数,我们需要传递一个字符串,用于标识当前 Store 的名称,这个名称也会作为该 Store 在应用程序的命名空间。 在 `state` 我们定义了该 Store 的状态属性,这些属性可以通过 `this.$store` 或 `useStore()` 来访问。注意,在 Pinia ,状态属性使用函数返回的形式定义,这是为了确保每个组件实例都有自己的状态副本。 在 `actions` ,我们可以定义异步操作,这些操作可以使用 `await` 关键字来等待异步的结果。异步操作可以通过 `this.$store` 或 `useStore()` 来访问。 在 `getters` ,我们可以定义计算属性,它们将根据 Store 的状态属性进行计算。计算属性可以通过 `this.$store` 或 `useStore()` 来访问。 最后,我们还可以定义 `mutations`,它们是用于修改状态的同步操作。在 Pinia ,mutations 是可选的,因为我们可以直接使用状态属性的赋操作来修改状态。如果你需要使用 mutations,请在 `defineStore` 传递一个包含 `mutations` 的对象。 以上是一个基本的 `store/index.js` 文件的模板,你可以根据自己的需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油吧少年时代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值