路由进阶部分 – 导航守卫( 路由守卫 )

  1. 作用: — 类似 【保安】

    • 守卫路由

        • 举例: 携带数据进
        • 举例: 事情完成才能出
  2. 导航守卫一共有三种形式

    1. 全局导航守卫用的时候写在主文件中(main.js),全局的

      1. 全局前置守卫 router.beforeEach(fn)

        • fn中有三个参数
      //to:去往的目标点
      //from:当前的木标点
      //next:流程    当参数为false时 不可以进行跳转,为空或者true时才可以
      router.beforeEach(( to , from , next )=>{const name = localStorage.getItem('name')if( name || to.path === '/my'){next()}else{next('/my')}
      })
      
      1. 全局的解析守卫(不常用)
      2. 全局的后置守卫 router.afterEach(fn)
        1. 可以做一些用户友好提示
        2. 与全局前置守卫参数相同
    2. 路由独享守卫 beforeEnter(to,from,next)

      1. 写在路由表中的守卫钩子
      2. 针对的是和当前路由相关的,那么其他与之不相关的路由,它是无法监听它的变化情况的
      3. 可用于用户权限管理
      4. 与全局前置守卫参数相同
      const routes = [{path: '/',redirect: '/home'},{path: '/home',component: Home},{path: '/category',component: Category,beforeEnter ( to,from,next ) {alert('您要进入吗')next()//业务: 用户权限管理}},{path: '**',redirect: '/error'}]
      
    3. 组件内守卫

      1. 组件内的前置守卫beforeRouteEnter((to,from,next)=>{})

        • 导航进入组件时,调用
        • 因为组件此时没有创建,所以没有this
        • this是访问不到的,如果非要访问this ,必须通过 next(vm=>{})访问
        • 案例: 数据预载(进入组件前就获得数据)
            next(vm => { //vm指的就是组件const result = JSON.parse(res.data.slice(7,-1)).rp_result.categorysvm.$set(vm.category,'categorys',result)})
        
      2. 组件内的后置守卫

        • 离开组件时,调用
        • this是可以访问到
        beforeRouteLeave (to, from, next) {//我们现在已经要离开这个组件,那么这个组件身上的数据和方法等内容我们肯定可以获取到,也就是说这里可以使用 thisif( this.username || this.password){if( confirm('您已经填写结束了吗?')){next()}else{next(false)}}else{next()}
        }
        
      3. 组件内的更新守卫( 路由传参和路由的接参 )

        1. 在当前路由改变,但是该组件被复用时调用
        2. 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
        3. 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
        4. 可以访问组件实例 this
         beforeRouteUpdate ( to,from,next ) { //动态路由用console.log('路由改变了')next()}
        

总结 路由导航守卫

  1. 3种类型 7个路由监听钩子
  2. 业务:
    • 监听整个项目的路由变化情况

      • 全局的前置守卫
    • 监听某个路由的变化情况
      • 路由的独享守卫
    • 监听的路由组件的路由变化情况
      • 组件内的导航守卫

导航守卫又称为路由守卫相关推荐

  1. Vue路由守卫(导航守卫)及使用场景

    目录 前言 一.路由守卫是什么? 二.路由守卫全解析 先来看一下钩子函数执行后输出的顺序吧 1.全局路由守卫 2.组件路由守卫 3.路由独享守卫 单独介绍一下路由守卫钩子三个参数 前言 最近在学习vu ...

  2. Angular 路由守卫

    1. 路由 Angular路由: 可以控制页面跳转:可以在多视图间切换: 2. 路由守卫 Angular路由守卫: 在进入或离开某路由时,用于判断是否可以离开.进入某路由::: return true ...

  3. vue 声明周期函数_vue-router路由守卫-上

    1. 为什么要使用路由守卫?什么是路由守卫? 第一次认识路由守卫:之前我做过的小项目里面,我们直接在浏览器网址的地方进行修改就能跳转页面,这是不安全的,因此就需要路由守卫,实现通过路由拦截,来判断用户 ...

  4. vue2路由手动创建二级路由路由传参路由守卫打包上线

    路由手动配置: #在@vue/cli创建的项目中,路由用法如下. 1.安装路由npm install vue-router@32:定义路由所需的组件(.vue文件)要实现页面about 和home两个 ...

  5. 路由守卫-最全没有之一(亲测)

    什么是路由守卫? 路由守卫就是路由跳转的一些验证,比如登录鉴权(没有登录不能进入个人中心页)等等等 路由守卫分为三大类: 1. 全局守卫:前置守卫:beforeEach 后置钩子:afterEach ...

  6. vue-cli 初始化创建 vue2.9.6 项目路由守卫、封装axios、vuex

    阅读目录 Vue如何封装Axios请求 1 安装axios 2 封装代码 axios 应用方式 Vue 中的路由守卫 使用演示 1 全局守卫 2 组件级守卫 3 单个路由独享的守卫 4 官网整个路由守 ...

  7. 路由守卫 /路由拦截

    1. 在访问一个页面的时候 也就是在进行路由跳转的时候,把这个跳转拦下来 做一些判断或者操作 然后来执行是继续访问这个页面还是执行别的操作 路由的导航守卫又叫 路由的生命周期函数 也叫 路由的钩子函数 ...

  8. vue的三种路由守卫

    路由守卫就是当⻚⾯跳转的时候会触发的钩⼦函数, vue⼀共给我们提供了三种路由守卫 全局路由守卫 前置守卫: router.beforeEach((to,from,next) => {}) to ...

  9. Flutter路由守卫拦截

    路由守卫拦截最常见的应用场景就是对用户数据权限的校验(用户是否是登录状态,404页面跳转--). 在Flutter中可以通过MaterialAppWedgit中的onGenerateRoute属性实现 ...

最新文章

  1. 两个有序单链表的合并排序算法
  2. 牛顿迭代法(Newton's Method)
  3. Python datetime isocalendar()方法与示例
  4. 外键为','(逗号)拼接ID,连接查询外键表ID
  5. VSCode自定义代码片段6——CSS选择器
  6. for循环与each遍历的跳出循环方式
  7. Hadoop入门进阶步步高(二)-目录介绍
  8. 【AsyncTask整理 1】 AsyncTask几点要注意的地方
  9. 博弈论 ----- Nim游戏
  10. linux内核的编译
  11. DNW启动异常的问题
  12. PyCharm 入手第一记
  13. querydsl动态 sql_QueryDSL-JPA
  14. 获取163邮箱的邮件 并下载附件
  15. 干货满满!龙蜥社区Meetup走进龙芯圆满结束,5大技术分享精彩回顾
  16. html超链接几种写法
  17. 2022年后疫情时代下市场研报报告合集(共90份)
  18. mysql建立序列相关操作 sequence
  19. 0Ω电阻可以过多大电流?
  20. Part 13 (1) Fourier级数基本概念与应用

热门文章

  1. UTP: 非屏蔽双绞线
  2. JavaWeb个人博客项目:手把手教你实现博客后台系统之具体准备与分析3
  3. android6.0动态获取系统权限
  4. H3C交换机配置基本命令详解
  5. 推荐一位 Python 大佬,全网 26 万粉丝,原创 300 多篇干货!
  6. Spring实战第五版第二章字段校验返回视图报错解决及javax.validation完整pom依赖
  7. 基于C++的FPS射击训练小游戏
  8. 个人一年工作情况总结报告
  9. FDDB,检测自己的数据集的mobilenet,网络模型的详细步骤,留给新手参考
  10. 昆仑通态触摸屏1003故障码,踩坑笔记