美文网首页
VUE导航守卫beforeRouteLeave实现路由跳转拦截

VUE导航守卫beforeRouteLeave实现路由跳转拦截

作者: 来碗鸡蛋面 | 来源:发表于2019-08-01 21:23 被阅读0次

## 原创声明

本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息:

笔名:来碗鸡蛋面

简书主页:[https://www.jianshu.com/u/4876275b5a73](https://www.jianshu.com/u/4876275b5a73)

邮箱:job_tom@foxmail.com

CSDN ID:tom_wong666

基本语法:

beforeRouteLeave (to,from, next) {

    // 必须调用next()

    // next(true)进入原计划的下个页面

    // next(false)进入from页面(即原本的页面)         

}

背景:

Vue做移动端,项目实际代码无法展示,写了一个示例demo见如下git地址:

https://github.com/tom-wong666/model.git

Demo说明:

A组件跳转到B组件,点击B组件的按钮打开其自带的C遮罩层(100%遮挡),C遮罩层自带关闭按钮用以返回(显示)B组件;

问题:

如果点击移动端的返回按钮(效果同点击浏览器左上方的回退按钮),页面跳回到A组件了,这和常理相悖,业务逻辑要求点击C遮罩层后应该返回B组件。

解决办法:

beforeRouteLeave (to, from, next) {

  // this.show是组件内定义的data用以判定v-if="show"是否成立

  if(this.show){

  //如果show为true是显示状态,则next(false)返回from的组件(B组件)

    this.show=false

      next(false);

  }else{

    //反之,则next(true)计入next组件(A组件)

      next(true);

  }       

}

注意:

beforeRouteLeave只在设置了router的第一级组件内有效!

相关文章

  • VUE导航守卫beforeRouteLeave实现路由跳转拦截

    ## 原创声明 本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息: 笔名:来碗鸡蛋面 简书...

  • vue 路由导航白话全解析

    这里先放上官网的教程和说明:点击这里,vue导航守卫官方文档 路由守卫 路由守卫说白了就是路由拦截,在地址栏跳转之...

  • Vue导航守卫

    Vue导航守卫 理解 导航守卫也叫路由守卫,可以实时的监控路由的跳转过程,在路由的跳转的各个过程执行相应的操作,有...

  • vue-router进阶

    导航守卫 vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航(路由发生改变才会守卫)。参数 ...

  • vue路由导航守卫

    vue路由导航守卫:导航守卫通俗来说就是utr跳转的监听,当a跳转到b的过程执行的函数 导航守卫的使用方法 首先定...

  • vue路由钩子介绍

    路由钩子主要用来拦截导航,在钩子里可以跳转到指定的页面或取消跳转。 路由参数或者查询的改变不会触发导航守卫!。 *...

  • vue-router导航守卫&&滚动&&路由懒加载

    导航守卫 正如其名,vue-router提供的导航守卫主要用来通过跳转或取消的方式守卫,有多种机会植入路由导航过程...

  • vue-router路由守卫

    vue-router导航钩子 vue-router导航钩子的主要作用是拦截导航,让路由完成跳转或者取消; 导航钩子...

  • vue导航守卫

    “导航”表示路由正在发生改变。 正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航...

  • vue-路由导航守卫&异步组件

    导航守卫包括全局导航守卫、路由守卫、组件局部守卫 全局导航守卫 在全局导航守卫中,每次路由的跳转他们三个都会被触发...

网友评论

      本文标题:VUE导航守卫beforeRouteLeave实现路由跳转拦截

      本文链接:https://www.haomeiwen.com/subject/wabnrctx.html