before vue路由钩子_前端面试准备笔记系列之vue(07)

目录

01. vue-router 传参方式

02. 命名路由(params)和查询参数(query)的异同

03. vue-router 懒加载

04. vue-router 响应路由参数的变化

05. vue-router导航钩子的作用是什么?

06. vue-router导航钩子的分类有哪些?

07. 路由跳转导航流程解析,路由A->路由B

08. 全局守卫钩子函数的参数有什么区别?

09. 导航钩子函数参数to、from、next的含义

正文

01. vue-router 传参方式

和name配对的是params,和path配对的是query

  • 命名路由

使用命名路由前提是,必须在注册路由的地方给路由命名(name)。命名路由传递参数使用params来传递。

// 编程式导航具体使用this.$router.push({ name: 'news', params: { userId: 123 }})// 声明式导航具体使用click to news page// 接收传递参数{{this.$route.params.userId}}
  • 查询参数

使用查询参数就是在路由地址后面带上参数和传统的url参数一致的查询参数使用query传递,同时必须使用path,不能用name。

// 编程式导航具体使用this.$router.push({ path: '/news', query: { userId: 123 }});// 声明式导航具体使用click to news page// 接收参数{{this.$route.query.userId}}

02. 命名路由(params)和查询参数(query)的异同

  • 命名路由搭配params传递参数,刷新页面数据会丢失
  • 查询参数搭配query传递参数,刷新页面数据不会丢失
  • 接收参数都是使用,this.$router+搭配路由的名称,获取参数。

03. vue-router 懒加载

const router = new VueRouter({  routes: [    {      path: '/home',      name: 'Home',      component:() = import('../views/home')}  ]})

04. vue-router 响应路由参数的变化

  • watch检测
// 监听当前路由发生变化的时候执行watch: {  $route(to, from){    console.log(to.path)    // 对路由变化做出响应  }}
  • 组件内导航钩子函数 beforeRouteUpdate
beforeRouteUpdate(to, from, next){  // to do somethings}

05. vue-router导航钩子的作用是什么?

导航钩子的主要作用就是拦截导航,让他完成跳转或者取消。

06. vue-router导航钩子的分类有哪些?

  • 全局守卫

所有路由配置的组件都会触发,简单点说就是触发路由就会触发这些钩子函数。全局守卫钩子函数执行顺序是,beforeEach、beforeResolve、afterEach三个。

  • 路由独享守卫

单个路由配置的时候也可以设置的钩子函数,且只能在这个路由下起作用。只有一个钩子函数beforeEnter

  • 局部守卫

组件内执行的钩子函数,类似于数组内的生命周期函数,相当于为配置路由的组件添加的生命周期钩子函数。钩子函数按执行顺序包括beforeRouteEnter、beforeRouteUpdate(2.2新增)、beforeRouteLeave三个

07. 路由跳转导航流程解析,路由A->路由B

  • A组件的,局部守卫,beforeRouterLeave方法
  • 全局守卫,beforeEach
  • B组件路由配置的,路由独享守卫,beforeEnter
  • B组件的,局部守卫,beforeRouteEnter
  • 全局守卫,beforeResolve
  • 导航确认
  • 全局守卫,afterEach
  • 触发DOM更新

08. 全局守卫钩子函数的参数有什么区别?

  • beforeEach和beforeResolve,参数相同,都是to、from、next三个
  • beforeEach和beforeResolve,都是路由跳转前触发
  • afterEach是在路由跳转之后触发,参数只有to、from。

09. 导航钩子函数参数to、from、next的含义

    • to:去哪里,代表要进入的目标,它是一个路由对象
    • from:从哪里来,代表当前正要离开的路由,同样也是一个路由对象
    • next:这是一个必须需要调用的方法,而具体的执行效果则依赖next方法调用的参数

写在最后

本文是在准备面试过程中整理的vue面试中可能遇到问题相关系列的第七篇文章,由于以上内容纯手敲,可能有手误的地方,也可能有错误的地方,希望大家指正和见谅。最后,希望与每一个努力的人同行,一起加油!!!

7fa39b2cc4e03c3b551d6d2f55759007.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值