全局路由守卫和pinia同时使用存在的问题

// A代码
// src/router/index.js

import { useMain } from '../store'
const useStoreMain = useMain()

router.beforeEach((to, from, next) => {
    const isManager=useStoreMain.isManager
    // startsWith:匹配以括号内为开头的内容
    if (to.path.startsWith("/HomeManage")) {
        if (isManager) {
            next() // 跳转到下一个路由
        } else {
            ElMessage.error("请先登录")
            next('/Login')
        }
    }
   next()
})

A代码导致如下报错:

报错原因: router 挂载比 pinia 早, 守卫在使用pinia时,pinia还没有挂载

解决办法如B代码:只需将 pinia 写在全局路由守卫里面

// B代码
// src/router/index.js
​
import { useMain } from '../store'
​
router.beforeEach((to, from, next) => {
    const useStoreMain = useMain()
    const isManager=useStoreMain.isManager
    // startsWith:匹配以括号内为开头的内容
    if (to.path.startsWith("/HomeManage")) {
        if (isManager) {
            next() // 跳转到下一个路由
        } else {
            ElMessage.error("请先登录")
            next('/Login')
        }
    }
   next()
})

A代码和B代码只有 pinia创建语句位置 的不同

如果对你有帮助,希望能得到你的点赞或收藏或关注,这是对我最好的鼓励;

如你有问题或疑惑,欢迎在评论区写下,必将努力解答;

如本文有误区,希望你不吝赐教,让我们共勉!

相关推荐

  1. vue - 守卫

    2024-03-23 20:44:02       32 阅读
  2. vue2 组件内守卫使用

    2024-03-23 20:44:02       57 阅读
  3. Vue守卫笔记

    2024-03-23 20:44:02       58 阅读
  4. vue-router(守卫)

    2024-03-23 20:44:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 20:44:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 20:44:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 20:44:02       82 阅读
  4. Python语言-面向对象

    2024-03-23 20:44:02       91 阅读

热门阅读

  1. SQL执行原理

    2024-03-23 20:44:02       42 阅读
  2. 使用vue的element组件上传excel文件

    2024-03-23 20:44:02       36 阅读
  3. 前端请求传参格式

    2024-03-23 20:44:02       41 阅读
  4. web蓝桥杯真题:折叠手风琴

    2024-03-23 20:44:02       40 阅读
  5. 分布式并行策略概述

    2024-03-23 20:44:02       44 阅读
  6. 国庆节是星期几

    2024-03-23 20:44:02       42 阅读
  7. 为wordpress后台添加一个自定义页面

    2024-03-23 20:44:02       41 阅读
  8. Linux ld链接器

    2024-03-23 20:44:02       31 阅读