问题描述
  第一次进入页面,左侧静态路由和动态路由列表均能正常显示,但点击左侧其他路由后浏览器报警告[vue-router] Duplicate named routes definition…,并且跳转失败。

  动态路由的概念:
  一般来说是通过后端接口返回拿到数据,不同人不同权限,返回的数据也不同。然后在路由守卫router.beforeEach 中进行添加路由。

解决方案
  创建本地存储一个字段,第一次来的时候正常增加addRoutes,增加后立刻改变本地存储状态,并且增加判断,所以再次进入其他路由时就不会触发addRoutes了

  解决代码:
  在permission.js文件中:

window.sessionStorage.setItem('Aside', '0')
router.beforeEach((to, from, next) => {
if (window.sessionStorage.getItem('Aside') === '0') {
store.dispatch('GenerateRoutes').then(accessRoutes => {
// 根据roles权限生成可访问的路由表
window.sessionStorage.setItem('Aside', '1')
router.addRoutes(accessRoutes) // 动态添加可访问路由表
next({ replace: true }) // hack方法 确保addRoutes已完成
})
}
next()
})

————————————————
版权声明:本文为CSDN博主「百事可口」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38594056/article/details/121541879

[转][vue-router] Duplicate named routes definition动态路由addRoutes的踩坑的更多相关文章

  1. vue动态添加路由,跳转页面时,页面报错路由重复:vue-router.esm.js?8c4f:16 [vue-router] Duplicate named routes definition: { name: "Login", path: "/login" }

    之前用了一个vue-element-admin做了一个小项目,里面用到了动态添加路由,动态展示侧边栏, 当我切换页面时,控制台总是警告提示路由重复,连续跳转几次页面后,控制台就被这些警告占满了, 于是 ...

  2. vue 之bug<1> Warn : [vue-router] Duplicate named routes definition:

    原因:定义重复的路由名称. 我有3个不同的(父级)vue文件分别配置了3个相同的(子级)vue文件,配置路由的js文件里子集路由的name重复了. 解决方案: 一天一个小Bug

  3. 使用VUE开发用户后台时的动态路由问题、按钮权限问题以及其他页面处理问题

    如今前后端分离是大势所趋,笔者虽然是做后台的,但也不得不学学前端的流行框架VUE -_-||| . 为了学习VUE,笔者搭建了一个简单的用户后台,以此来了解VUE的开发思路(注:本项目不用于实际开发, ...

  4. Vue路由history模式踩坑记录:nginx配置解决404问题

    问题背景: vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载.但是如果我们不想hash这种以#号结尾的路径时候的话,我们可以使 ...

  5. Vue Router学习笔记

    前端的路由:一个地址对应一个组件 Vue Router中文文档 一.路由基本使用 第1步:导入Vue Router: <script src="https://unpkg.com/vu ...

  6. [Vue 牛刀小试]:第十二章 - 使用 Vue Router 实现 Vue 中的前端路由控制

    一.前言 前端路由是什么?如果你之前从事的是后端的工作,或者虽然有接触前端,但是并没有使用到单页面应用的话,这个概念对你来说还是会很陌生的.那么,为什么会在单页面应用中存在这么一个概念,以及,前端路由 ...

  7. [Vue 牛刀小试]:第十三章 - Vue Router 基础使用再探(命名路由、命名视图、路由传参)

    一.前言 在上一章的学习中,我们简单介绍了前端路由的概念,以及如何在 Vue 中通过使用 Vue Router 来实现我们的前端路由.但是在实际使用中,我们经常会遇到路由传参.或者一个页面是由多个组件 ...

  8. vue 踩坑记录

    1.绑定双击事件用 @dblclick 不要用@ondblclick  在vue中@=on 2.Vue中路由跳转踩坑. 比如我的路由如下定义 routes: [ { path: "/&quo ...

  9. Vue.js 第4章 组件与路由

    组件 什么是组件:组件就是一些标签结构的封装,同时为这些结构添加需要的业务逻辑,设置你想要的样式 一个组件中一般可以设置:结构,功能和样式 为什么要使用组件: 使用方便 复用 组件的创建和使用 组件的 ...

  10. Vue Router的懒加载路径

    单页应用产出的入口chunk大小随着业务的复杂度线性增加,导致后期加载速度越来越慢.后面就需要对不同路径下的模块进行拆分,打包到相应的chunk下,按需加载,找到chunk的大小.个数和页面加载速度的 ...

随机推荐

  1. 华为云-容器引擎CCE-部署Nginx应用

    环境准备 注册华为云账号 复制下面地址到浏览器地址栏(https://reg.huaweicloud.com/registerui/cn/register.html?fromacct=c76cea9f ...

  2. mini-web 框架添加路由

    阅读目录 1.mini web框架-4-路由 2.伪静态.静态和动态的区别 3.mini-web框架-实现伪静态url 4.准备股票数据 5.mini-web框架-从mysql中查询数据 6.mini ...

  3. List<Map<String,Object>> 属性获取

    public static void main(String[] args) { // 1.数据准备 List<Map<String,Object>> list = new A ...

  4. 使用 FastGPT 实现最佳 AI 翻译工作流:全世界最信达雅的翻译

    想让AI翻译既准确又地道?本文将教你如何利用 FastGPT 打造一个革命性的翻译工作流. 它不仅支持文本翻译,还能直接处理文档,更能通过自定义术语表确保专业术语的翻译准确性,堪称翻译神器! 直接看效 ...

  5. .NET 平台 WPF 通用权限开发框架 (ABP)

    前言 对于大多数.NET后端开发者而言,ABP框架已经相当熟悉,可以轻松进行二次开发,无需重复实现用户角色管理.权限控制.组织管理和多租户等功能. 然而,ABP框架主要专注于Web应用,对于桌面端和移 ...

  6. 使用wxpython开发跨平台桌面应用,实现程序托盘图标和界面最小化及恢复处理

    在前面随笔<基于wxpython的跨平台桌面应用系统开发>介绍了一些关于wxpython开发跨平台桌面应用的总体效果,开发桌面应用,会有很多界面细节需要逐一处理,本篇随笔继续深入该主题,对 ...

  7. 认识鸿蒙Context

    Context是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理).applicationInfo(当前应用信息).dir(应用文件路径).area(文件分 ...

  8. for Qbert sometimes we stay in lives == 0 condtion for a few frames —— baselines中环境包装器EpisodicLifeEnv的分析

    相关: baselines中环境包装器EpisodicLifeEnv的分析 一直不是很理解在reinforcement leanrning算法在atari游戏的observation的交互过程中对li ...

  9. 【python】利用tqdm实现git下载时的进度条效果

    注意1:这里是在python3环境下使用的git,安装要使用 pip install Gitpython 来安装在python环境下的git 注意2:这个方法可适用于 windows 环境和 Linu ...

  10. 基于.NET开源、功能强大且灵活的工作流引擎框架

    前言 工作流引擎框架在需要自动化处理复杂业务流程.提高工作效率和确保流程顺畅执行的场景中得到了广泛应用.今天大姚给大家推荐一款基于.NET开源.功能强大且灵活的工作流引擎框架:elsa-core. 框 ...