1、全局守卫(在所有路由展示前触发)//在main.js中
router.beforeEach((to, from, next) => { 
     to 即将要进入的到的路由,值为路由
     from 离开的路由(从哪个路由离开),值为路由
     next 值为函数,这个函数决定你接下来要展示的路由页面
})

router.beforeEach((to, from, next) => {
if(to.path==='/login'){
next();
}else{
alert('你还没登录,请登录');
next('/login');
}
});

 在页面点击时,会先询问,然后跳转。

2、后置钩子(在所有路由展示后触发)//在main.js中

router.afterEach((to,from)=>{ 
    to 即将要进入的到的路由,值为路由
    from 离开的路由(从哪个路由离开),值为路由
});

router.afterEach((to, from) => {
alert('我是后置钩子')
})

3、路由独享的守卫(在当前路由展示前触发)//在router.js

beforeEnter(to, from, next){ //在路由内部使用
    to 即将要进入的到的路由,值为路由
   from 离开的路由(从哪个路由离开),值为路由
   next 值为函数,这个函数决定你接下来要展示的路由页面
};

beforeEnter(to,from,next){
alert('非登录状态下无法管理,请登录');
next('/login');
}

 

4、组件内的守卫
beforeRouteEnter(to, from, next){ //在路由组件内使用
   //在当前路由被展示前调用
};
beforeRouteUpdate(to, from, next){ //在路由组件内使用
   //在当前路改变时调用
};
beforeRouteLeave(to, from, next){ //在路由组件内使用
   //在离开当前路时调用
};

beforeRouteEnter(to, from, next){	//在路由组件内使用
//在当前路由被展示前调用
//alert('你好!');
//alert(this.name); //报错,beforeRouteEnter不能够访问到this对象,因为守卫触发时组件还没有被创建
next(vm=>{
alert(vm.name);
});
},

离开页面时调用

 beforeRouteLeave (to, from, next) {
// 在离开当前路由时调用
const answer=confirm('你确定要离开么?')
if(answer){
next();
}else{
next(false);
}
}

  

vue 导航守卫的更多相关文章

  1. Vue导航守卫beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave详解

    Vue导航守卫以我自己的理解就是监听页面进入,修改,和离开的功能.每个守卫接受三个参数 to: Route: 即将要进入的目标路由对象 from: Route: 当前导航正要离开的路由 next: F ...

  2. vue导航守卫和axios拦截器的区别

    在Vue项目中,有两种用户登录状态判断并处理的情况,分别为:导航守卫和axios拦截器. 一.什么是导航守卫? vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.(在路由跳转时 ...

  3. vue 导航守卫,验证是否登录

    路由跳转前,可以用导航守卫判断是否登录,如果登录了就正常跳转,没有登录就把路由指向登录页面. router.beforeEach((to, from, next) => { const next ...

  4. [Vue]导航守卫:全局的、单个路由独享的、组件级的

    正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的. 记住参数或查询的改变并不会触发进入/离开的 ...

  5. Vue的钩子函数[路由导航守卫、keep-alive、生命周期钩子]

    前言 说到Vue的钩子函数,可能很多人只停留在一些很简单常用的钩子(created,mounted),而且对于里面的区别,什么时候该用什么钩子,并没有仔细的去研究过,且Vue的生命周期在面试中也算是比 ...

  6. Vue的路由动态重定向和导航守卫

    一.重定向 重定向也是通过 routes 配置来完成,下面例子是从 /a 重定向到 /b: const router = new VueRouter({ routes: [ { path: '/a', ...

  7. Vue(7)- vue-cookies、极验滑动验证geetest、vue-router的导航守卫

    一.vue-cookies 参考文档简书:https://www.jianshu.com/p/535b53989b39 参考文档npm:https://www.npmjs.com/package/vu ...

  8. vue之生命周期与导航守卫

    组件钩子函数: beforeCreate.created.beforeMount.mounted.beforeUpdate.updated.beforeDestroy.destoryed 还有两个特殊 ...

  9. vue进阶:vue-router之导航守卫、路由元信息、路由懒加载

    1.导航被触发 2.在失活的组件里调用离开守卫:beforeRouteLeave —— 组件内守卫(离开组件). 3.调用全局的beforeEach守卫 —— 全局守卫(进入组件). 4.在重用组件里 ...

随机推荐

  1. kotlin创建类的实例

    Java 中使用new关键字,但是在kotlin中调用函数和创建类的实例直接省略new 比如 new myClass()变成类myClass()

  2. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_15-webpack研究-webpack-dev-server-程序调试

    webpack把我们的js文件都打包了.所以不能用chrome的调试工具. 打包生成的js文件比较乱无法跟踪. 配置好了以后就可以让浏览器查看到打包后的源代码 在源代码这里加一个debuuger 这里 ...

  3. Qt编写安防视频监控系统2-视频播放

    一.前言 视频播放功能是核心功能之一,为了统一管理接口,统一封装成一个控件,对外提供seturl open close方法即可,不用去管内部的具体处理,这样就可以提供多种接口来实现统一的管理,比如vl ...

  4. .net framework 4.0 安装失败解决办法

    方法一 1.打开cmd命令窗口   运行net stop WuAuServ    停止更新服务 2.开始----运行------输入%windir% 3.找到SoftwareDistribution的 ...

  5. 慎用rm -rf

    首先,搞个回收站在~下 .bashrc或者.bash_profile加入 mkdir -p ~/.trash alias rm=trash alias r=trash alias rl='ls ~/. ...

  6. TensorFlow.环境_avx2

    1.缘由: 按照之前的步骤,在Win10的笔记本上就是不行: 1.1.jupyter notebook的相关界面,如下图所示: ZC:感觉 应该还是 tensorflow的问题 1.2.然后 各种测试 ...

  7. elasticsearch 的post put 方式的对比 setting mapping设置 - 添加查询数据

    1.POST和PUT都可以用于创建 2.PUT是幂等方法,POST不是.所以post用户更新,put用于新增比较合适. 参考:https://yq.aliyun.com/articles/366099 ...

  8. Redis内存分析工具—redis-rdb-tools (转载http://www.voidcn.com/article/p-axfdqxmd-bro.html)

    redis-rdb-tools是由Python写的用来分析Redis的rdb快照文件用的工具,它可以把rdb快照文件生成json文件或者生成报表用来分析Redis的使用详情.使用标准的diff工具比较 ...

  9. 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理

    目录 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理 17.1 计划任务-at-cron-计划任务使用方法 17.1.1 at计划任务的使用 17.1.2 查看和删除at将要执行 ...

  10. Hadoop之HDFS介绍

    1. 概述 HDFS是一种分布式文件管理系统. HDFS的使用场景: 适合一次写入,多次读出的场景,且不支持文件的修改: 适合用来做数据分析,并不适合用来做网盘应用: 1.2 优缺点 优点: 高容错性 ...