导航守卫又称为路由守卫
路由进阶部分 – 导航守卫( 路由守卫 )
作用: — 类似 【保安】
- 守卫路由
- 进
- 举例: 携带数据进
- 出
- 举例: 事情完成才能出
- 进
- 守卫路由
导航守卫一共有三种形式
全局导航守卫
用的时候写在主文件中(main.js),全局的
- 全局前置守卫
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')} })
- 全局的解析守卫(不常用)
- 全局的后置守卫
router.afterEach(fn)
- 可以做一些用户友好提示
- 与全局前置守卫参数相同
- 全局前置守卫
路由独享守卫
beforeEnter(to,from,next)
- 写在路由表中的守卫钩子
- 针对的是和当前路由相关的,那么其他与之不相关的路由,它是无法监听它的变化情况的
- 可用于用户权限管理
- 与全局前置守卫参数相同
const routes = [{path: '/',redirect: '/home'},{path: '/home',component: Home},{path: '/category',component: Category,beforeEnter ( to,from,next ) {alert('您要进入吗')next()//业务: 用户权限管理}},{path: '**',redirect: '/error'}]
组件内守卫
组件内的前置守卫
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)})
组件内的后置守卫
- 离开组件时,调用
- this是可以访问到
beforeRouteLeave (to, from, next) {//我们现在已经要离开这个组件,那么这个组件身上的数据和方法等内容我们肯定可以获取到,也就是说这里可以使用 thisif( this.username || this.password){if( confirm('您已经填写结束了吗?')){next()}else{next(false)}}else{next()} }
组件内的更新守卫( 路由传参和路由的接参 )
- 在当前路由改变,但是该组件被复用时调用
- 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
- 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
- 可以访问组件实例
this
beforeRouteUpdate ( to,from,next ) { //动态路由用console.log('路由改变了')next()}
总结 路由导航守卫
- 3种类型 7个路由监听钩子
- 业务:
- 监听整个项目的路由变化情况
- 全局的前置守卫
- 监听某个路由的变化情况
- 路由的独享守卫
- 监听的路由组件的路由变化情况
- 组件内的导航守卫
- 监听整个项目的路由变化情况
导航守卫又称为路由守卫相关推荐
- Vue路由守卫(导航守卫)及使用场景
目录 前言 一.路由守卫是什么? 二.路由守卫全解析 先来看一下钩子函数执行后输出的顺序吧 1.全局路由守卫 2.组件路由守卫 3.路由独享守卫 单独介绍一下路由守卫钩子三个参数 前言 最近在学习vu ...
- Angular 路由守卫
1. 路由 Angular路由: 可以控制页面跳转:可以在多视图间切换: 2. 路由守卫 Angular路由守卫: 在进入或离开某路由时,用于判断是否可以离开.进入某路由::: return true ...
- vue 声明周期函数_vue-router路由守卫-上
1. 为什么要使用路由守卫?什么是路由守卫? 第一次认识路由守卫:之前我做过的小项目里面,我们直接在浏览器网址的地方进行修改就能跳转页面,这是不安全的,因此就需要路由守卫,实现通过路由拦截,来判断用户 ...
- vue2路由手动创建二级路由路由传参路由守卫打包上线
路由手动配置: #在@vue/cli创建的项目中,路由用法如下. 1.安装路由npm install vue-router@32:定义路由所需的组件(.vue文件)要实现页面about 和home两个 ...
- 路由守卫-最全没有之一(亲测)
什么是路由守卫? 路由守卫就是路由跳转的一些验证,比如登录鉴权(没有登录不能进入个人中心页)等等等 路由守卫分为三大类: 1. 全局守卫:前置守卫:beforeEach 后置钩子:afterEach ...
- vue-cli 初始化创建 vue2.9.6 项目路由守卫、封装axios、vuex
阅读目录 Vue如何封装Axios请求 1 安装axios 2 封装代码 axios 应用方式 Vue 中的路由守卫 使用演示 1 全局守卫 2 组件级守卫 3 单个路由独享的守卫 4 官网整个路由守 ...
- 路由守卫 /路由拦截
1. 在访问一个页面的时候 也就是在进行路由跳转的时候,把这个跳转拦下来 做一些判断或者操作 然后来执行是继续访问这个页面还是执行别的操作 路由的导航守卫又叫 路由的生命周期函数 也叫 路由的钩子函数 ...
- vue的三种路由守卫
路由守卫就是当⻚⾯跳转的时候会触发的钩⼦函数, vue⼀共给我们提供了三种路由守卫 全局路由守卫 前置守卫: router.beforeEach((to,from,next) => {}) to ...
- Flutter路由守卫拦截
路由守卫拦截最常见的应用场景就是对用户数据权限的校验(用户是否是登录状态,404页面跳转--). 在Flutter中可以通过MaterialAppWedgit中的onGenerateRoute属性实现 ...
最新文章
- 两个有序单链表的合并排序算法
- 牛顿迭代法(Newton's Method)
- Python datetime isocalendar()方法与示例
- 外键为','(逗号)拼接ID,连接查询外键表ID
- VSCode自定义代码片段6——CSS选择器
- for循环与each遍历的跳出循环方式
- Hadoop入门进阶步步高(二)-目录介绍
- 【AsyncTask整理 1】 AsyncTask几点要注意的地方
- 博弈论 ----- Nim游戏
- linux内核的编译
- DNW启动异常的问题
- PyCharm 入手第一记
- querydsl动态 sql_QueryDSL-JPA
- 获取163邮箱的邮件 并下载附件
- 干货满满!龙蜥社区Meetup走进龙芯圆满结束,5大技术分享精彩回顾
- html超链接几种写法
- 2022年后疫情时代下市场研报报告合集(共90份)
- mysql建立序列相关操作 sequence
- 0Ω电阻可以过多大电流?
- Part 13 (1) Fourier级数基本概念与应用
热门文章
- UTP: 非屏蔽双绞线
- JavaWeb个人博客项目:手把手教你实现博客后台系统之具体准备与分析3
- android6.0动态获取系统权限
- H3C交换机配置基本命令详解
- 推荐一位 Python 大佬,全网 26 万粉丝,原创 300 多篇干货!
- Spring实战第五版第二章字段校验返回视图报错解决及javax.validation完整pom依赖
- 基于C++的FPS射击训练小游戏
- 个人一年工作情况总结报告
- FDDB,检测自己的数据集的mobilenet,网络模型的详细步骤,留给新手参考
- 昆仑通态触摸屏1003故障码,踩坑笔记