当前位置: 首页 > news >正文

vue-router学习(四) --- 动态添加路由

我们一般使用动态添加路由都是后台会返回一个路由表前端通过调接口拿到后处理(后端处理路由)。比如不同权限显示不同的路由。

主要使用的方法就是router.addRoute

添加路由

动态路由主要通过两个函数实现。router.addRoute() 和 router.removeRoute()它们只注册一个新的路由,也就是说,如果新增加的路由与当前位置相匹配,就需要你用 router.push()router.replace() 来手动导航,才能显示该新路由

router.addRoute({ path: '/about', component: About })

删除路由

有几个不同的方法来删除现有的路由:

  1. 通过添加一个名称冲突的路由。如果添加与现有途径名称相同的途径,会先删除路由,再添加路由
router.addRoute({ path: '/about', name: 'about', component: About })
// 这将会删除之前已经添加的路由,因为他们具有相同的名字且名字必须是唯一的
router.addRoute({ path: '/other', name: 'about', component: Other })
  1. 通过调用 router.addRoute() 返回的回调:
const removeRoute = router.addRoute(routeRecord)
removeRoute() // 删除路由如果存在的话

当路由没有名称时,这很有用

  1. 通过使用 router.removeRoute() 按名称删除路由:
router.addRoute({ path: '/about', name: 'about', component: About })
// 删除路由
router.removeRoute('about')

需要注意的是,如果你想使用这个功能,但又想避免名字的冲突,可以在路由中使用 Symbol 作为名字。

当路由被删除时,所有的别名和子路由也会被同时删除

注意一个事项vite在使用动态路由的时候import(‘…/…/’)无法使用别名@ 必须使用相对路径

const initRouter = async () => {const result = await axios.get('http://localhost:9999/login', { params: formInline });result.data.route.forEach((v: any) => {router.addRoute({path: v.path,name: v.name,这儿不能使用@component: () => import(`../views/${v.component}`)})router.push('/index')})console.log(router.getRoutes());}

查看现有路由

Vue Router 提供了两个功能来查看现有的路由:

  • router.hasRoute():检查路由是否存在。
  • router.getRoutes():获取一个包含所有路由记录的数组。
http://www.lryc.cn/news/213722.html

相关文章:

  • 科东软件受邀参加2023国家工业软件大会,共话工业软件未来
  • ros启动节点的launch文件你真的会写吗?
  • AMEYA360:循序积累立体布局,北京君正实景展示AI-ISP
  • 10.31 知识总结(选择器、css属性相关)
  • 【网络协议】聊聊TCP如何做到可靠传输的
  • 记一次flask框架环境综合渗透测试
  • 博弈论学习笔记(2)——完全信息静态博弈
  • 【COMP304 LEC4 LEC5】
  • 表白墙(服务器)
  • 在 Mac 中卸载 Node.js
  • Hafnium构建选项及FVP模型调用
  • 第44天:前端及html、Http协议
  • shell_63.Linux产生信号
  • 互联网摸鱼日报(2023-11-01)
  • AR的光学原理?
  • 语义分割 实例分割的异同点
  • C++学习初探---‘C++面向对象‘-继承函数重载与运算符重载
  • Linux下搭建SRS服务器环境
  • pytest 使用(一)
  • 基于秃鹰算法的无人机航迹规划-附代码
  • 08. 按键输入
  • YOLOv8-pose关键点检测:模型轻量化创新 |轻量高性能网络PPLCNet助力backbone
  • 大数据笔记-关于Cassandra的删除问题
  • Qt自定义文件选择框
  • 金蝶云星空创建自动下推并保存公共服务
  • 人大金仓助力中国人民银行征信中心业务系统异地容灾优化升级
  • [架构之路-249/创业之路-80]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 产品(数据)管理
  • 【NI-DAQmx入门】传感器基础知识
  • CMake:构建时为特定目标运行自定义命令
  • 基于适应度相关算法的无人机航迹规划-附代码