vueRouter重置路由

1.v3

javascript 复制代码
import VueRouter from 'vue-router'

// 假设 constantRoutes 是你的基础静态路由
import { constantRoutes } from './routes'

export function resetRouter() {
  const freshRouter = new VueRouter({ mode: 'history', routes: constantRoutes })
  router.matcher = freshRouter.matcher // 替换 matcher,达到重置目的
}

2.v4

javascript 复制代码
import { createRouter, createWebHistory } from 'vue-router'
const resetRouter = () => {
  const newRouter = createRouter({ history: createWebHistory(), routes: [...] })
  router.matcher = newRouter.matcher
}

v4 提供了单条路由的删减api

javascript 复制代码
import { createRouter, createWebHistory } from 'vue-router'
import router from './router'
import constantRoutes from './constantRoutes'

export const resetRouter = () => {
  router.getRoutes().forEach(r => router.removeRoute(r.name))

  // 视需要补齐静态基础路由
  constantRoutes.forEach(r => {
    if (!router.hasRoute(r.name)) router.addRoute(r)
  })
}
相关推荐
向前V9 小时前
Flutter for OpenHarmony 二维码扫描App实战 - 关于实现
开发语言·javascript·flutter
weixin_427771619 小时前
Vite 与 Webpack 模块解析差异
前端·webpack·node.js
永远是我的最爱9 小时前
基于ASP.NET的图书管理系统的设计与实现
前端·后端·sql·visual studio
广州华水科技10 小时前
单北斗GNSS技术在变形监测中的应用及其位移监测优势解析
前端
刘晓倩10 小时前
Python内置函数-hasattr()
前端·javascript·python
爱上妖精的尾巴10 小时前
7-10 WPS JS宏 对象使用实例7--拆分单表到多工作簿下的多表
javascript·restful·wps·jsa
C_心欲无痕10 小时前
不点击鼠标也能通过MouseEvent实现点击事件
前端·javascript
zhengxianyi51510 小时前
vite build 发布到nginx二级目录——将yudao-ui-go-view打包、部署到big目录下
vue.js·nginx·vite·前后端分离·打包·ruoyi-vue-pro优化·部署运维
鲨莎分不晴10 小时前
【实战】老项目焕发新生:从 Webpack 平滑迁移到 Vite 避坑全记录
前端·webpack·node.js
web小白成长日记11 小时前
从零起步,用TypeScript写一个Todo App:踩坑与收获分享
前端·javascript·typescript