• 注册
当前位置:1313e > 默认分类 >正文

路由守卫在实际场景的运用

一、什么是路由守卫

粗浅的来说,路由守卫就是,在你项目中路由发生变化的时候,会触发的东西。使用时,它会有三个参数给你返回:to、from、next。字面上我们就可以大概猜到这三个参数的含义,到哪去、从哪来,前进。

二、处理登录逻辑

路由守卫有全局的、有路由独享守卫、有页面中的像生命周期一样的守卫。这里我只举例第一种守卫,让大家简单了解下路由守卫。

在我的实际开发中,我常用路由守卫去处理登录的逻辑,当我们全局挂载路由守卫的时候,如果根据token的存在去作为判断,可以完成大多数的login登录逻辑:

import Vue from 'vue';
import Router from '@/plugin/uni-simple-router/index.js';Vue.use(Router);
//初始化
const router = new Router({...
});const whiteList = ['/pages/login/login'];
//全局路由前置守卫
router.beforeEach((to, from, next) => {// 这里我通过storage拿token,因为我的逻辑是登录的时候存token到storage// 当然在大多数应用场景,我们可以放在store中// 在uniapp场景中,则可以考虑存放在storage中let token = uni.getStorageSync('Access-Token');// 路由守卫在路由将要发生改变时触发,这时如果存在token,就让路由往下执行if (token) {next();} else {// 如果没token则是未登录状态,我们可以做相应的逻辑处理if (whiteList.indexOf(to.path) !== -1) {next();} else {next({path: '/pages/login/login'});};};
});
// 全局路由后置守卫
router.afterEach((to, from) => {console.log("afterEach");
});
export default router;

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录