V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Vue.js
Joseph0717
V2EX  ›  Vue.js

付费请教解决 vue-router 问题,后台框架 Vue Antd Admin

  •  
  •   Joseph0717 · 292 天前 · 2414 次点击
    这是一个创建于 292 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题:动态添加的路由页面刷新后 404 如图:ydEHPI.png

    我的操作: 1,router/config.js 配置了静态的几个基础路由 ydVaFA.png

    2,用户登录成功动态添加路由和菜单 ydVz6K.png ydVwWt.png

    3,路由守卫,刷新页面再次获取用户路由和菜单 ydVfWq.png ydV5lV.png

    4,一顿操作,问题还是 404

    18 条回复    2021-02-22 08:50:57 +08:00
    Joseph0717
        1
    Joseph0717   292 天前
    救救孩子吧
    xm726
        2
    xm726   292 天前
    把 404 放到最后去
    ni9ht
        3
    ni9ht   292 天前
    先看下页面刷新后有没有走你的 else 里面去请求获取数据,如果有请求获取数据就看看路由有没有添加进去
    InternetExplorer
        4
    InternetExplorer   292 天前
    把 404 的路由先拿掉呢?
    你这 const/let/var 乱用,看的急死了
    freakJacker
        5
    freakJacker   292 天前
    把 404 放到最后即可
    ni9ht
        6
    ni9ht   292 天前
    没注意看你 404 的写法,可以试试上面说的
    OHyn
        7
    OHyn   292 天前
    打印一下钩子的入参中的 to,看一下 to.redirectedFrom 或 to.path,可能有惊喜。我印象中,按 f5 刷新,可能已经被重定向到 404 页面了,那就得 next({ path: to.redirectedFrom || to.path })。
    rodrick
        8
    rodrick   292 天前
    先看下刷新后的 routers 是啥,官方我记得好像说不推荐 this.$router.options.routes 直接改,不确定这样会不会有问题
    Joseph0717
        9
    Joseph0717   292 天前
    @xm726 404 放到最后试过了
    @ni9ht 数据可以获取到,404 页面打印路由都有
    @InternetExplorer 404 拿掉报错
    @OHyn to.path 是有的
    谢谢各位,我继续研究吧
    Joseph0717
        10
    Joseph0717   292 天前
    @rodrick 刷新后 404 页打印 router 是守卫里获取到的路由
    OHyn
        11
    OHyn   292 天前
    @Joseph0717 在 404 页面打印路由,路由都有的话,着重排查离开钩子时目标页面的路径,你开 devtool 看一下页面跳转的记录,有迹可循的。
    chenluo0429
        12
    chenluo0429   292 天前 via Android
    动态路由添加到了最后,路径被 404 的*优先匹配了?我记得 addRoutes 蛮多坑的
    karott7
        13
    karott7   292 天前
    404 路由放最后面,添加路由用 addRoutes 方法
    lzhcscs
        14
    lzhcscs   292 天前
    之前有碰到过,404 页面用 addRouter 再添加一次
    router.addRoutes([{ path: '*',name: 'error_404',component: err404 }])
    serene11c
        15
    serene11c   292 天前
    404 放在动态添加的路由的最后,静态的不用放
    https://github.com/vuejs/vue-router/issues/1176
    akcode
        16
    akcode   291 天前
    路由又不会经常变,还不如全部写成静态的,做路由权限。
    Unitent
        17
    Unitent   291 天前
    https://blog.csdn.net/Jack7757/article/details/110315475 看了还不懂记得加我微信 Unitent_
    a4page
        18
    a4page   280 天前
    动态路由要注意一个问题,看是否是 webpack tree shaking,没把对应路由组件打包进去
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4073 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 03:11 · PVG 11:11 · LAX 19:11 · JFK 22:11
    ♥ Do have faith in what you're doing.