我自己一直用的都是动态路由,后端返回动态路由的数组结构,前端把动态路由用 addRoute()之类的加到路由表里。因为常用的几个流行的后台管理系统脚手架都是这么做的,思维惯性让我觉得就这一种方法了。 但今天看到有人说设计完全是错的,我想了想,既然需求是不同用户看到不同的菜单,也不能通过修改 URL 访问到对应页面,那静态路由加导航守卫里去做拦截不也行?这样还省的让后端去了解路由数组的结构了。 或者大佬们还有什么其他办法吗?
我建议你放弃思考,直接用框架的答案。如果能直接上个框架就更好了。 所有框架都是使用中间件( middleware )来拦截越权请求的,也就是你说的导航守卫。 https://nuxt.com/docs/getting-started/routing#route-middleware https://remix.run/docs/en/main/route/loader#throwing-responses-in-loaders https://nextjs.org/docs/app/building-your-application/routing/middleware