当前位置: 首页 > 知识库问答 >
问题:

vue-router - Vue2中多页面的路由问题?

尹辰沛
2023-06-12

多页面的配置如下:

// 主页
index: { 
    entry: './src/main.js', 
    template: './public/index.html', 
},
// 充值中心
recharge_center: {
    entry: './src/external/pages/Recharge/recharge.js',
    template: './public/Recharge.html'
},

在充值中心配置的路由守卫是想在访问 http://localhost:9000/recharge-center/xxx不存在的页面时重定向到充值中心页面,即 http://localhost:9000/recharge-center,但实际上却会重定向到主页,在控制台也可以看到没有进入充值中心的路由守卫钩子函数,而是进入了主页的钩子函数。

主页的路由:

router.beforeEach((to,from,next) => {
  if(to.matched.length == 0){
    // 未匹配到路由就返回主页
    console.log('进入了主页的路由守卫');
    next('/drive/index');
  }
  next();
});

充值中心的路由:

router.beforeEach((to, from, next) => {
    console.log('进入了充值中心的路由守卫');
    if (to.matched.length == 0) {
        next('/recharge-center');
    }
    next();
});

望解答

共有1个答案

仲阳朔
2023-06-12

因为先执行了全局的路由守卫,所以你得在全局路由守卫里对 'recharge-center' 相关路由进行特殊处理,让它继续走下去

router.beforeEach((to,from,next) => {
  if(to.matched.length === 0 && !to.path.includes('recharge-center')){ // 在这里排除 recharge-center 相关路由
    // 未匹配到路由就返回主页
    console.log('进入了主页的路由守卫');
    next('/drive/index');
  }
  next();
});

之后你配置在 recharge_center 中的路由守卫才能执行

 类似资料:
  • 推荐直接使用官方 vue-router,VUX部分组件支持link属性直接支持vue-router的路由参数,vux2模板内置了vue-router。 如果使用了过渡(转场动画),在iPhone上使用左划返回时动画会再执行一遍,目前没有找到可行的处理方法,如果你有处理方案,欢迎PR。 https://github.com/airyland/vux/pull/2259

  • 本文向大家介绍vue2笔记 — vue-router路由懒加载的实现,包括了vue2笔记 — vue-router路由懒加载的实现的使用技巧和注意事项,需要的朋友参考一下 在Web应用程序中,系统的瓶颈常在于系统的响应速度。如果系统响应速度过慢,用户就会出现埋怨情绪,系统的价值也因此会大打折扣。因此,提高系统响应速度,是非常重要的。 懒加载(Load On Demand)是一种独特而又强大的数据获

  • 本文向大家介绍详解vue2路由vue-router配置(懒加载),包括了详解vue2路由vue-router配置(懒加载)的使用技巧和注意事项,需要的朋友参考一下 vue路由配置以及按需加载模块配置 1、首先在component文件目录下写俩组件: First.vue: Second.vue: 2、router目录下的index.js文件配置路由信息: 3、main.js中引入路由配置文件: 4、

  • 什么是路由 后端路由 对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源。 当前端输入url请求资源时,服务器会监听到是什么url地址,那后端会返回什么样的资源呢?后端这个处理的过程就是通过路由来分发的。 总结:后端路由,就是把所有url地址都对应到服务器的资源,这个对应关系就是路由。 前端路由 对于单页面应用程序来说,主要通过URL中的hash(url地址中的#

  • router配置 点击进去页面时 这样点击后页面会出现但是刷新或者跳转别的路由会报错 刷新报错: 跳转其他路由报错: 如何解决?

  • 本文向大家介绍解决vue多个路由共用一个页面的问题,包括了解决vue多个路由共用一个页面的问题的使用技巧和注意事项,需要的朋友参考一下 在日常的vue开发中我们可能会遇见多个路由需要共用一个页面的需求,特别是当路由是通过动态添加的,不同的路由展示的东西只是数据不同其他没有变化。例如: 这种情况的时候,我们发现,其实我们的页面在第一次加载成功后就不会再加载了。所以页面一直显示第一次加载的数据,给人的