vue-router实现全局路由跳转拦截

公司项目里面遇到这样一个需求‘除了登录页面之外,所有页面需要登录才能显示’,由于是第一次遇到这种一翻搜索之后得到了解决方案,下面上代码
在vue脚手架生成的router文件夹下面的index.js里面,给需要拦截的组件新增里面meta属性

1
2
3
4
5
6
7
{
path: '/entry',
name: 'entry',
component: Entry,
meta: {
Auth: true // 需要登录
}

在入口文件main.js里面

1
2
3
4
5
6
7
8
router.beforeEach((to, from, next) => {
if (to.matched[0].meta.Auth) { //判断是否需要拦截
if (!window.sessionStorage.user) { //成功登录会在sessionStorage里面设置一个uesr
next('/');
}
};
next();
});

以上就实现了全局路由拦截


vue-router实现全局路由跳转拦截
https://xypecho.github.io/2018/03/06/vue-router实现全局路由跳转拦截/
作者
很青的青蛙
发布于
2018年3月6日
许可协议