• 技术文章 >web前端 >js教程

    在VueRouter中如何使用导航守卫用法

    亚连亚连2018-06-15 16:28:39原创1376
    这篇文章主要介绍了VueRouter导航守卫的详细用法以及分类介绍,有兴趣的朋友学习参考下吧。

    简介

    主要用来通过跳转或取消的方式守卫导航。

    例如判断登录信息:没登录全部跳到登录页。判断必要操作是否进行没进行的话中断跳转。

    分为三大类:全局守卫、路由守卫、组件守卫

    全局守卫

    beforeEach
    beforeResolve
    afterEach

    路由守卫

    beforeEnter

    组件守卫

    beforeRouteEnter
      // 在渲染该组件的对应路由被 confirm 前调用
      // 不!能!获取组件实例 `this`
      // 因为当守卫执行前,组件实例还没被创建
      虽然无法直接获取组件实力
      但是我们可以通过next参数的回调函数获取到当前实例进行操作
      beforeRouteEnter: (to, from, next) => {
        next((vm) => {
          //vm就是当前组件实例
        });
      }
    beforeRouteUpdate
      // 在当前路由改变,但是该组件被复用时调用
      // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
      // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
      // 可以访问组件实例 `this`
    beforeRouteLeave
      // 导航离开该组件的对应路由时调用
      // 可以访问组件实例 `this`

    参数介绍

    这些导航守卫涉及到的参数:to、from、next

    除了全局守卫的afterEach只有to和from外其余都有三个参数

    (摘抄自官网)
    to: Route: 即将要进入的目标 路由对象
    from: Route: 当前导航正要离开的路由
    next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
      next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。
      next(false): 中断当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。
      next('/') 或者 next({ path: '/' }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。
      next(error): (2.4.0+) 如果传入 next 的参数是一个 Error 实例,则导航会被终止且该错误会被传递给 router.onError() 注册过的回调。

    运行机制

    大前端零基础入门到就业:进入学习

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    使用vue.js如何实现被选中的改变方法

    在vue中如何阻止click事件冒泡

    Vue.js 点击按钮显示/隐藏内容

    vue中如何改变当前项的显示隐藏

    Ionic实现验证码倒计时

    以上就是在VueRouter中如何使用导航守卫用法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:VueRouter 导航守卫
    上一篇:js的继承实现 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 浅析Angular中的Change Detection机制• 实战学习:聊聊Node.js怎么操作数据库• 一文聊聊node中的path模块• 浅析Angular变更检测中的订阅异步事件• 聊聊如何选择一个最好的Node.js Docker镜像?
    1/1

    PHP中文网