“约见”面试官系列之常见面试题之第九十八篇之vue-router有哪几种导航钩子(建议收藏)
目录
1.导航钩子的作用
2.导航钩子的分类
3.全局守卫
4.路由独享守卫
5.局部守卫
6.路由跳转导航解析流程,当由A路由–>B路由的时候
1.导航钩子的作用
- vue-router提供的导航钩子主要用来拦截导航,让它完成跳转或取消。
2.导航钩子的分类
3.全局守卫
[beforeEach]:在路由跳转前触发,参数包括to,from,next三个,这个钩子作用主要是用于登录验证,也就是路由还没跳转提前告知,以免跳转了再通知就为时已晚。
router.beforeEach router.beforeResolve router.afterEachconst router = new VueRouter({ ... });router.beforeEach((to, from, next) => {// do someting});
- to:代表要进入的目标,它是一个路由对象
- from:代表当前正要离开的路由,同样也是一个路由对象
- next:这是一个必须需要调用的方法,而具体的执行效果则依赖next方法调用的参数
[beforeResolve]:这个钩子和beforeEach类似,也是路由跳转前触发,参数也是to,from,next三个,和beforeEach区别官方解释为:
区别是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就会被调用。
即在beforeEach和组件内beforeRouteEnter之后,afterEach之后,afterEach之前调用。
[afterEach]:和beforeEach相反,它是在路由跳转完成之后触发,参数包括to、from,没有了next,它发生在beforeEach和beforeResolve之后,beforeRouteEnter(足迹按内守卫)之前。
const router = new VueRouter({ ... });router.beforeEach((to, from, next) => {// do someting});//全局后置钩子,后置钩子并没有 next 函数,也不会改变导航本身router.afterEach((to, from) => {// do someting});
4.路由独享守卫
是指在单个路由配置的时候也可以设置的钩子函数,且只能在这个路由下起作用。其位置如下,也就是像File这样的组件都存在这样的钩子函数。目前它只有一个钩子函数beforeEnter。
[beforeEnter]:和beforeEach完全相同,如果都设置则在beforeEach之后紧随执行,参数有to、from、next。
cont router = new VueRouter({routes: [{path: '/file',component: File,beforeEnter: (to, from ,next) => {// do someting}}]});
5.局部守卫
const File = {template: `<div>This is file</div>`,beforeRouteEnter(to, from, next) {// do someting// 在渲染该组件的对应路由被 confirm 前调用},beforeRouteUpdate(to, from, next) {// do someting// 在当前路由改变,但是依然渲染该组件是调用},beforeRouteLeave(to, from ,next) {// do someting// 导航离开该组件的对应路由时被调用}}
6.路由跳转导航解析流程,当由A路由–>B路由的时候
routes:[{path:'/b',component:B,beforeEnter:(to,form,next)=>{..... }}]
“约见”面试官系列之常见面试题之第九十八篇之vue-router有哪几种导航钩子(建议收藏)相关推荐
- “约见”面试官系列之常见面试题之第九十五篇之vue-router的组件组成(建议收藏)
<router-link :to='' class='active-class'> //路由声明式跳转 ,active-class是标签被点击时的样式<router-view> ...
- “约见”面试官系列之常见面试题之第九十四篇之MVVM框架(建议收藏)
目录 一句话总结:vm层(视图模型层)通过接口从后台m层(model层)请求数据,vm层继而和v(view层)实现数据的双向绑定. 1.我大前端应该不应该做复杂的数据处理的工作? 2.mvc和mvvm ...
- “约见”面试官系列之常见面试题之第九十二篇之created和mounted区别(建议收藏)
beforeCreate 创建之前:已经完成了 初始化事件和生命周期 created 创建完成:已经完成了 初始化注册和响应 beforeMount 挂载之前:已经完成了模板渲染 mounted :挂 ...
- “约见”面试官系列之常见面试题第三十八篇之js常见的继承方式(建议收藏)
1.原型链继承 核心: 将父类的实例作为子类的原型 将构造函数的原型设置为另一个构造函数的实例对象,这样就可以继承另一个原型对象的所有属性和方法,可以继续往上,最终形成原型链 父类 // 定义一个动物 ...
- “约见”面试官系列之常见面试题之第九十九篇之router和route(建议收藏)
1.router是VueRouter的一个对象,通过Vue.use(VueRouter)和VueRouter构造函数得到一个router的实例对象,这个对象中是一个全局的对象,他包含了所有的路由包含了 ...
- “约见”面试官系列之常见面试题之第九十九篇之router的钩子函数(建议收藏)
当使用路由参数时,例如从 /user/aside导航到 /user/foo,原来的组件实例会被复用.因为两个路由都渲染同个组件,比起销毁再创建,复用则更加高效.不过,这也意味着组件的生命周期钩子不会再 ...
- “约见”面试官系列之常见面试题之第九十六篇之active-class是谁的属性(建议收藏)
active-class 属于vue-router的样式方法,当router-link标签被点击时将会应用这个样式 一.首先,active-class是什么,active-class是vue-rout ...
- “约见”面试官系列之常见面试题之第九十篇之页面加载触发函数(建议收藏)
第一次页面加载时会触发 beforeCreate, created, beforeMount, mounted 这几个钩子 本面试题为前端常考面试题,后续有机会继续完善.我是歌谣,一个沉迷于故事的讲述 ...
- “约见”面试官系列之常见面试题第四十四篇之webpack打包原理解析?(建议收藏)
webpack打包是如何运行的 也可以称为,webpack是如何实现模块化的 CommonJS是同步加载模块,一般用于node.因为node应用程序运行在服务器上,程序通过文件系统可以直接读取到各个模 ...
最新文章
- 三大软件公司争霸赛区块链
- CSDN 插件限时内测,新用户抢永久免费去广告特权!
- awk 系列:awk 怎么读取标准输入(STDIN)
- 解决安卓机在微信上播放视频有广告问题
- ASP.NET杂谈-一切都从web.config说起(2)(ConfigSections详解-上 )
- mysql安装check requirements出错_超详细的MySQL8.0.17版本安装教程
- Jenkins自动化部署容器
- java小工程_Java进阶:阶段性小工程
- SlickEdit 的宏解析设置方法
- 零基础学Python--------第3章 流程控制语句
- 一个单独的UDP数据包能够放入数据的最大长度是65508
- MATLAB输出白色背景图片
- java io 系列(转载skywang12345)
- 信号发生器和任意波形发生器的区别
- 给学妹学弟们的看书小建议!
- C语言程序设计笔记(浙大翁恺版) 第七章:函数
- 博云与智领云达成战略合作,携手共研云原生大数据领域
- C++:实现量化Piecewise yield曲线测试实例
- 13c语言——运算符
- 用爬虫收集网站公开数据丨Python爬虫实战系列(5)
热门文章
- Flask构建微电影(二)
- There is no public key available for the following key IDs:3B4FE6ACC0B21F32
- Axure RP 8.0正式版下载地址 安装和汉化说明
- Handler的一个图片轮播程序
- abiword class list
- java循环一年月份天数和_javawhile循环编写输入某年某月某日,判断这一天是这一年的第几…...
- 神舟笔记本bios_海尔雷神(蓝天)神舟战神游戏本风扇狂转掉电大写灯狂闪维修实例...
- lxml学习【未完成】
- MAC下secureCRT无法保存密码的解决方法
- [react] 写出React动态改变class切换组件样式