Vue使用路由钩子拦截器beforeEach和afterEach监听路由


Posted in Javascript onNovember 16, 2020

在路由跳转的时候,我们需要一些权限判断或者其他操作。这个时候就需要使用路由的钩子函数。

定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数。

总体来讲vue里面提供了三大类钩子,两种函数 1、全局钩子 2、某个路由的钩子 3、组件内钩子

两种函数:

1. router.beforeEach(function(to,form,next){}) /*在跳转之前执行*/

2. router.afterEach(function(to,form)}{}) /*在跳转之后判断*/

全局钩子函数

顾名思义,它是对全局有效的一个函数

// router.jsconst router = new Router({
 routes: [
  {
   path: '/',
   name: 'sideBar',
   component: sideBar,
   children:[
    {
     path:'/',
     name:'sort',
     component:sort
    },
    {
     path:'/addNewSort',
     name:'addNewSort',
     component:addNewSort
    },
    {
     path:'/notSend',
     name:'notSend',
     component:notSend
    },
    {
     path:'/sended',
     name:'sended',
     component:sended
    },
  }
 ]
})

router.beforeEach((to,from,next)=>{
 // console.log("to:",to);   // router即将进入的路由对象
 // console.log("from:",from); // 当前导航即将离开的路由
 // console.log("next:",next); // Function,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的);否则为false,终止导航。
 if(to.name=='notSend'){
  next({
   name:'sort'
  })
  return
 }
 next()
})

export default router

某个路由的钩子函数

顾名思义,它是写在某个路由里头的函数,本质上跟组件内函数没有区别。

// router.jsconst router = new VueRouter({
 routes: [
  {
   path: '/login',
   component: Login,
   beforeEnter: (to, from, next) => {
    // ...
   },
   beforeLeave: (to, from, next) => {
    // ...
   }
  }
 ]
})

路由组件的钩子

可以在路由组件内直接定义以下路由导航钩子

// *.vuebeforeRouteEnter
beforeRouteUpdate (2.2 新增)
beforeRouteLeave

这里简单说下钩子函数的用法:它是和data,methods平级的。

beforeRouteLeave(to, from, next) {
  next()
},
beforeRouteEnter(to, from, next) {
  next()
},
beforeRouteUpdate(to, from, next) { // 用于相同路由组件的的参数更新
  next()
},
data:{},
method: {}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
javascript对数组的常用操作代码 数组方法总汇
Jan 27 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
Feb 25 Javascript
点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
Feb 10 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
Mar 23 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
jQuery绑定事件on()与弹窗的简要概述
Apr 27 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 Javascript
js中的闭包学习心得
Feb 06 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
Sep 12 Javascript
JS数组索引检测中的数据类型问题详解
Jan 11 Javascript
小程序实现密码输入框
Nov 16 #Javascript
vue 使用localstorage实现面包屑的操作
Nov 16 #Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 #Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 #Javascript
Vue 数据绑定的原理分析
Nov 16 #Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
Nov 16 #Javascript
Vue指令实现OutClick的示例
Nov 16 #Javascript
You might like
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
jquery实现excel导出的方法
2013/04/04 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
Vuejs实现购物车功能
2017/11/05 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
Python2随机数列生成器简单实例
2017/09/04 Python
django加载本地html的方法
2018/05/27 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
Python如何调用JS文件中的函数
2019/08/16 Python
python自动发微信监控报警
2019/09/06 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
浅析Python面向对象编程
2020/07/10 Python
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
网络研修随笔感言
2014/02/17 职场文书
人事部岗位职责范本
2014/03/05 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
化学教育专业求职信
2014/07/08 职场文书
党性心得体会
2014/09/03 职场文书
大明湖导游词
2015/02/03 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python