解决vue2.0路由跳转未匹配相应路由而出现空白页面的问题

在做项目的时候, 遇到前端控制路由跳转, 但是当用户手动输入错误的路由,或者是一些不符合的路由的时候, 页面就会出现一片空白, 也没有任何报错消息。

正常我们应该首先想到redirect去重定向路由, 可是测试发现http://localhost:3008/#/ 如果我们输入的地址是酱紫的, 页面并不能按照我们所想要实现的跳转到首页。

export default [
    {
        path: '/home',
        component: App,
        title: '运维管理',
        children: [
            {
                name: 'homeMain',
                path: '',
                title: '子页面',
                component: require('../containers/homeMain/index')
            }
        ],
        extra: {
            inMenu: true,
            icon: 'el-icon-chain'
        }
    },
    {
        path: '/examine',
        component: App,
        title: '审核',
        children: [
            {
                name: 'manger',
                path: '',
                title: '审核',
                component: require('../containers/manger/index')
            }
        ],
        extra: {
            inMenu: true,
            icon: 'el-icon-chain'
        }
    },
    {
        path: '*',  //*号表示匹配任意内容
        component: App,
        title: '首页',
        redirect: '/home',
        extra: {
            inMenu: false
        }
    }
];

那么是不是还有其他解决方法呢?

哈哈,重点代码如下:

    router.beforeEach((to, from, next) => {
        // 此处判断条件我有看到其他人用to.matched.length ===0进行判断, 具体的还有待进一步验证,大体的思路就是这样的
        if (to.fullPath === '/') { 
            from.name ? next({ name:from.name }) : next('/home');   
        } else {
            next(); //如果匹配到正确跳转
        }
});
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值