为什么不问问神奇的海螺呢?|

小阿紫

园龄:3年5个月粉丝:8关注:1

vue3中如何使用路由守卫

什么是路由守卫?为什么要使用路由守卫?

在项目中,每一次路由的切换或者页面的刷新都需要我们判断用户是否已经登录

导航钩子提供的三个参数:

to:即将要进入的目标路由对象;
from:当前导航即将要离开的路由对象;
next :只有在调用该方法后,路由才会改变,才能进入下一个钩子函数(afterEach)。

  1. 路由独享守卫

vue-router提供了导航钩子:全局前置导航钩子 beforeEach和全局后置导航钩子 afterEach,他们会在路由即将改变前和改变后进行触发。所以判断用户是否登录需要在beforeEach导航钩子中进行判断。

import { createRouter, createWebHashHistory } from "vue-router";

const routes = [
  {
    path: "/",
    name: "Home",
    component: () => import("../views/home/Home.vue"), //动态加载组件
  },
  {
    path: "/login",
    name: "Login",
    component: () => import("../views/login/Login.vue"), //动态加载组件
    beforeEnter: (to, from, next) => {
      const { isLogin } = localStorage;
      isLogin ? next({ name: "Home" }) : next();
    },
  }
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});

2.全局路由守卫

所谓全局路由守卫,就是小区大门,整个小区就这一个大门,你想要进入其中任何一个房子,都需要经过这个大门的检查
全局路由守卫有个两个:一个是全局前置守卫,一个是全局后置守卫

/* router.beforeEach()一般用来做一些进入页面的限制。比如没有登录,就不能进入某些页面,只有登录了之后才有权限查看某些页面。。。说白了就是路由拦截。 */
router.beforeEach((to, from, next) => {
  const { isLogin } = localStorage;
  isLogin || to.name === "Login" ? next() : next({ name: "Login" });
});

export default router;

本文作者:晴天小猪小阿紫

本文链接:https://www.cnblogs.com/chenzilong/p/16042258.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   小阿紫  阅读(3893)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 人世间 Audio artist
  2. 2 风吹过八千里 Audio artist
风吹过八千里 - Audio artist
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

风吹过八千里 - 藤柒吖

词:巴欧特

曲:Moni鱼子酱

原唱:苏星婕

编曲:东阳

(未经许可,不得翻唱或使用)

有些话何必说清没有意义

请你当做我自作多情

请你当做我自作多情

一人完成两个人的不通关游戏

一人完成两个人的不通关游戏

为何你还不满意

为何你还不满意

冰箱里的东西早就过期

冰箱里的东西早就过期

留言还是周一

到夜深人静

只剩我和空气 没道理

你说爱情仅此而已

谁还没有一丝委屈

不再关心我的世界下了雨

像风吹过八千里

像风吹过八千里

流云和月都曾爱过你

流云和月都曾爱过你

可是潮汐干涸在有情人的海底

那最潮湿的爱意

那最潮湿的爱意

携裹着最伤人语句

携裹着最伤人语句

或许遥不可及 才得人心

或许遥不可及 才得人心

冰箱里的东西早就过期

冰箱里的东西早就过期

留言还是周一

到夜深人静

只剩我和空气 没道理

你说爱情仅此而已

谁还没有一丝委屈

不再关心我的世界下了雨

像风吹过八千里

像风吹过八千里

流云和月都曾爱过你

流云和月都曾爱过你

可是潮汐干涸在有情人的海底

那最潮湿的爱意

那最潮湿的爱意

携裹着最伤人语句

携裹着最伤人语句

或许遥不可及 才得人心

像风吹过八千里

像风吹过八千里

流云和月都曾爱过你

流云和月都曾爱过你

可是潮汐干涸在有情人的海底

那最潮湿的爱意

那最潮湿的爱意

携裹着最伤人语句

携裹着最伤人语句

或许遥不可及 才得人心

或许遥不可及 才得人心