位置: IT常识 - 正文

vue动态路由添加,vue-router的addRoute方法实现权限控制,添加根路由和子路由(vue 动态添加路由)

编辑:rootadmin
vue动态路由添加,vue-router的addRoute方法实现权限控制,添加根路由和子路由 addRoute路由分为静态路由和动态路由静态路由和动态路由的优缺点动态路由实现思路:动态路由遇到的问题与解决方式动态添加子路由路由分为静态路由和动态路由静态路由和动态路由的优缺点1、中大型项目,采用的都是动态路由方式,因为后台导航目录运营人员可能会新增菜单,新增菜单后,前端人员得在路由表手动填加上,这样导航才能点击才能对应上页面,这样比较麻烦。2、如果是动态路由,运营人员新增目录后,因为我是动态路由获取永远是最新的路径,一次性通过动态填加的方式加进去,后边就不用管路由的事了,只关心页面就可以了,也是对权限管理的一种方法。动态路由实现思路:在全局路由守卫中,先判断token值有没有。有的话先看是否存储过,如果存储过直接,页面调用渲染,如果没有,就请求接口,把路由表存储下,除非没有token,跳转登录页面路由表里-把那些常规路由(不需要权限的路由,事先都写到路由表里)。把需要权限的路由通过router.addRoute()动态填加到对应的子路由里 。动态填加的路由需要处理下。因为后端传给你的是树状结构,一般前端需要把树结构处理成列表结构(通过递归,不断的获取路径,名字那些信息),填加到路由表里。(我没写 )动态路由遇到的问题与解决方式登录后路由表里在次加载一遍动态路由-解决第1次页面点击找不到路径问题,因为路由是动态生成的,登录后路由没有被在次生成,路由表里是空的。所以在路由里要在次生成一遍也有可能是因为你的路由表里有通配路由,你的书写位置也不是入口文件处,可能就是404页面。登录后跳转其它页面,如果刷新,页面找不到问题?原因是路由是动态的,它是在登录后生成的,而其它页面没有在次生成动态路由,所以就找不到。解决办法:可在路由里,在生成一遍动态路由。这样不管在后台哪个页面,一刷新都会先执行。(路由先走)具体方法是在入口文件当中,通过全局前置路由守卫获取router路由(考虑到在main.js中这个文件比较繁琐),新文件重新导入 动态添加子路由

推荐整理分享vue动态路由添加,vue-router的addRoute方法实现权限控制,添加根路由和子路由(vue 动态添加路由),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue动态路由加载组件,vue 动态添加路由,vue 动态添加路由,vue动态路由添加 没生效,vue动态路由添加重复问题,vue动态路由添加重复问题,vue动态路由添加 没生效,vue动态路由添加 没生效,内容如对您有帮助,希望把文章链接给更多的朋友!

vue动态路由添加,vue-router的addRoute方法实现权限控制,添加根路由和子路由(vue 动态添加路由)

获取主路由的一个子数组信息。

router.beforeEach((to,from,next)=>{ console.log(router);/* 路由对象 */ console.log(router.options.routes);/* 前端路由实例对象数组(根组) */ console.log(router.options.routes[0]);/* 需要在里面动态添加子路由的一个根组,插入的也是这个根组对象 */ console.log(router.options.routes[0].children);/* 获取这个根组下的子路由数组 *//*纯粹的一次添加路由,其实通过服务器根据权限获取路由信息*/ if(router.options.routes[0].children.length == 4 && to.path!="/login"){ router.options.routes[0].children.unshift({path:"test",component:()=>import("@/views/test.vue")}) router.addRoute(router.options.routes[0]); next({ path: to.path, // 动态添加一个新的路由 replace: true // 重定向,为了让刚刚添加的路由规则生效 }); }else{ next(); } })

也可以写成:

let newT = router.options.routes[0];/* 需要在里面动态添加子路由的一个根组,插入的也是这个根组对象 */if (newT.children.length == 4 && to.path != "/login") {//条件保护,防止全局路由守卫死循环执行。 newT.children.unshift({ path: "test", component: () => import("@/views/test.vue") }) //给子路由添加一条数据 router.addRoute(newT); next({ path: to.path, replace: true });} else { next()}

可以看的出来:addRoute 添加一条新的路由记录是一个对象 router.addRoute({});同时这个路由作为现有路由的子路由,如果路由有一个name,或者地址一样,就会删除之前的路由信息,重新加进去这个路由。或者已经有一个与之名字相同的路由,它会先删除之前的路由; 注意:新添加的路由并不会触发新的导航 需要:

next({ path: to.path, // 动态添加一个新的路由 replace: true // 重定向,为了让刚刚添加的路由规则生效});

vue-router的addRoute方法实现权限控制 getRoutes()方法是获取这个这个路由数据的数组实例,来实现一个条件控制。

router.beforeEach((to,from,next)=>{ if(router.getRoutes().length==3 && to.path === "/admin"){ router.addRoute({path:"/admin",name:"admin",component:()=>import(/*webpackChunkName: "admin"*/"@/views/Admin.vue")}) next({ path: to.path, replace: true }); } next();})
本文链接地址:https://www.jiuchutong.com/zhishi/294592.html 转载请保留说明!

上一篇:VUE设置和清除定时器(vue清空页面数据)

下一篇:Vue3 —— 使用Vite配置环境变量(vue3 + ts)

  • 2017年SEO推广优化怎样做?(seo宣传推广)

    2017年SEO推广优化怎样做?(seo宣传推广)

  • 小米5手环怎么绑定手机(小米5手环怎么调时间和日期)

    小米5手环怎么绑定手机(小米5手环怎么调时间和日期)

  • 网易云私信怎么知道对方看没看(网易云私信怎么免打扰)

    网易云私信怎么知道对方看没看(网易云私信怎么免打扰)

  • 红米k30pro屏幕刷新率是60hz吗(红米k30pro刷屏多少)

    红米k30pro屏幕刷新率是60hz吗(红米k30pro刷屏多少)

  • 微信运动会显示路线吗(微信运动会显示苹果手表)

    微信运动会显示路线吗(微信运动会显示苹果手表)

  • 抖音怎么知道限流了(抖音怎么看有没有被限制)

    抖音怎么知道限流了(抖音怎么看有没有被限制)

  • 互联网直播信息保存多长时间(互联网直播信息保存多少日)

    互联网直播信息保存多长时间(互联网直播信息保存多少日)

  • 计算机中ram因断电而丢失的信息(ram储存器中的信息断电后不会丢失)

    计算机中ram因断电而丢失的信息(ram储存器中的信息断电后不会丢失)

  • 华为mate20x5g和mate305g对比

    华为mate20x5g和mate305g对比

  • 华为5g随行wifi和pro区别(华为5g随行wifi和5G手机热点)

    华为5g随行wifi和pro区别(华为5g随行wifi和5G手机热点)

  • 苹果7触屏间歇性失灵(iphone7触屏间歇性失灵)

    苹果7触屏间歇性失灵(iphone7触屏间歇性失灵)

  • 美团会员季卡是多少个月(美团的季卡是几个月)

    美团会员季卡是多少个月(美团的季卡是几个月)

  • 平板全网通可以用wifi吗(平板全网通可以打电话吗)

    平板全网通可以用wifi吗(平板全网通可以打电话吗)

  • onedrive是什么意思(one drive是啥)

    onedrive是什么意思(one drive是啥)

  • 仅聊天和屏蔽朋友圈的区别(仅聊天和屏蔽朋友圈的显示)

    仅聊天和屏蔽朋友圈的区别(仅聊天和屏蔽朋友圈的显示)

  • 微信wifi一键连安全吗(微信wifi一键连会盗信息吗)

    微信wifi一键连安全吗(微信wifi一键连会盗信息吗)

  • 蓝牙耳机摔了一下不出声了怎么办(蓝牙耳机摔了一下没声音了怎么办)

    蓝牙耳机摔了一下不出声了怎么办(蓝牙耳机摔了一下没声音了怎么办)

  • 华为手机性能模式怎么开(华为手机性能模式长期开启合适吗)

    华为手机性能模式怎么开(华为手机性能模式长期开启合适吗)

  • 路由器突然上不了网怎么办(路由器突然上不了网怎么修)

    路由器突然上不了网怎么办(路由器突然上不了网怎么修)

  • 微信横屏模式是啥(微信横屏模式是怎么回事)

    微信横屏模式是啥(微信横屏模式是怎么回事)

  • 快手有多少粉丝可以直播(老外仨吃货在快手有多少粉丝)

    快手有多少粉丝可以直播(老外仨吃货在快手有多少粉丝)

  • iphonex和11pro屏幕一样大吗(iphonex和11pro屏幕大小一样吗)

    iphonex和11pro屏幕一样大吗(iphonex和11pro屏幕大小一样吗)

  • 苹果app自动扣费怎么取消(苹果App自动扣费是怎么回事)

    苹果app自动扣费怎么取消(苹果App自动扣费是怎么回事)

  • 红米7a有红外遥控器吗(红米7a有红外遥控功能吗)

    红米7a有红外遥控器吗(红米7a有红外遥控功能吗)

  • 第一PPT模板网说明、介绍等(第一ppt模板下载免费版)

    第一PPT模板网说明、介绍等(第一ppt模板下载免费版)

  • ai教育什么意思(ai教育主要是什么课程)

    ai教育什么意思(ai教育主要是什么课程)

  • VUE3.2 + vue-echarts + DataV 数据可视化大屏(项目)

    VUE3.2 + vue-echarts + DataV 数据可视化大屏(项目)

  • 耕地占用税的税目
  • 用友t3采购订单怎么录入
  • 资产处置损益属于当期损益吗
  • 小规模纳税人需要做进项税吗
  • 如何调整所得税费用
  • 收到转账支票怎么去银行处理
  • 其他权益工具和交易性金融资产
  • 资产负债表预收预付账款怎么填
  • 商业企业向供货方收取的进场费,不可以开具增值税发票
  • 成本类与费用类科目哪些区别
  • 年终奖金怎么发放
  • 叉车车船税每年都要交吗
  • 北京房产税如何申报缴纳
  • 定额发票使用年限规定
  • 零售超豪华小汽车交消费税吗
  • 会计员如何处理21种差额计税?
  • 某运输企业以客运,货运划分
  • 进项税和销项税税率一样吗
  • 子公司和母公司可以一起投标吗
  • 车辆完税证明怎么弄
  • 加工贸易的方式
  • 收回股东投资
  • 采购及安装合同怎么缴纳印花税
  • 融资租赁吗
  • 公司上市前缩股
  • php安装部署
  • 外购固定资产入账
  • 息税前利润和税前净利润的关系
  • protect.exe进程
  • phpget方法
  • 滞纳金不得超过税款
  • 资源税纳税申报流程
  • mysql实现事务
  • yolov5输出result
  • 支付航天信息服务费怎么入账
  • 利息支出属于成本项目吗
  • 物流公司交保险是骗局吗
  • java web购物系统
  • laravel框架实现cms的体会
  • 法人提取备用金多久归还
  • 工程施工科目下的间接费用怎么使用
  • 预付一年的房租并收到了发票会计分录
  • 需要缴纳企业所得税的企业类型
  • 购买金税盘的费用会计分录
  • 企业应收是什么意思
  • 公司申请破产后员工有赔偿吗
  • 超市的收银小票丢了可以要求重新打印一张吗
  • 调整以前年度损益调整什么时候结转
  • 发票申请退税隔两个月能去办理么
  • 未认证未抵扣的进项税
  • 固定资产的印花税费计入什么科目里
  • 应收帐款表
  • 红冲上一年度销售收入
  • 年终奖会计怎么走账
  • 个体工商户如何缴纳社保
  • 项目期间费用包括哪些费用
  • 明细分类账的建账
  • sql数据库监控工具
  • sql返回一条数据
  • win7的系统在哪里打开
  • win10升级后c盘莫名其妙满了
  • win10屏幕自动变黄
  • ubuntu开启图形化界面
  • macbook macos
  • win10系统添加语言
  • win8 资源管理器
  • win8系统 Cisco VPN 442错误怎么办?解决方法介绍
  • linux0.12内核代码多少行
  • Mac通过AppleID登录窗口
  • 铁嘴李林
  • linux spid
  • unity转盘游戏
  • javascript的dom操作
  • android基本控件使用方法
  • JavaScript中的变量名不区分大小写
  • Android EventBus发布/订阅事件总线
  • 江西省国家税务局
  • 地税企业所得税是多少
  • 开票没有0还是o
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设