vue路由拦截 发表于 2020-04-20 | 分类于 js , vue 应用场景 需要登录状态的页面 实现方式 beforeEach全局配置 12345678910111213141516//main.jsrouter.beforeEach((to, from, next) => { let ifInfo = Vue.prototype.$common.getSession('userData'); if (to.meta.requireAuth) { // 验证是否需要登陆 if (ifInfo) { // 查询本地存储信息是否已经登陆 next(); } else { next({ path: '/login', // 未登录则跳转至login页面 query: {redirect: to.fullPath} // 登陆成功后回到当前页面,这里传值给login页面,to.fullPath为当前点击的页面 }); } } else { next(); }}) 12345678910111213//router.jsexport default new Router({ routes: [ { path: '/user', name: 'user', meta: { requireAuth: true // 配置此条,进入页面前判断是否需要登陆 }, component: user } ]}) beforeEnter 方法也可以实现,不过是局部配置 1234567891011121314//router.jsconst router = new VueRouter({ routes: [ { path: '/login', name: 'login', component: login, beforeEnter: (to, from, next) => { console.log('即将进入登录页面') next() } } ]}) 参考文章