前端单页应用,页面权限应该用动态路由,还是静态路由加导航守卫?

246 天前
 rcocco
我自己一直用的都是动态路由,后端返回动态路由的数组结构,前端把动态路由用 addRoute()之类的加到路由表里。因为常用的几个流行的后台管理系统脚手架都是这么做的,思维惯性让我觉得就这一种方法了。
但今天看到有人说设计完全是错的,我想了想,既然需求是不同用户看到不同的菜单,也不能通过修改 URL 访问到对应页面,那静态路由加导航守卫里去做拦截不也行?这样还省的让后端去了解路由数组的结构了。
或者大佬们还有什么其他办法吗?
968 次点击
所在节点    前端开发
2 条回复
XCFOX
246 天前
我建议你放弃思考,直接用框架的答案。如果能直接上个框架就更好了。

所有框架都是使用中间件( 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
oliwans
246 天前
两种没有谁对谁错,静态路由加拦截器控制权在前端,动态路由控制权在后端,稳妥的方式是动态路由,优雅的方式是后端不用了解结构,只需返回 list 即可,你自己拼装结构生成动态路由,兼顾两者的优点,不过这个问题真的没啥讨论的必要,就像你一直用 go 开发 web ,一个人突然告诉你,错,应该用 java 去开发,还不用学习 go 了,自己的判断和认知最重要

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1024292

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX