V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rcocco
V2EX  ›  前端开发

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

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

    所有框架都是使用中间件( 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
        2
    oliwans  
       289 天前 via iPhone
    两种没有谁对谁错,静态路由加拦截器控制权在前端,动态路由控制权在后端,稳妥的方式是动态路由,优雅的方式是后端不用了解结构,只需返回 list 即可,你自己拼装结构生成动态路由,兼顾两者的优点,不过这个问题真的没啥讨论的必要,就像你一直用 go 开发 web ,一个人突然告诉你,错,应该用 java 去开发,还不用学习 go 了,自己的判断和认知最重要
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1013 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:52 · PVG 05:52 · LAX 13:52 · JFK 16:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.