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 相关文章推荐
使用JavaScript构建JSON格式字符串实现步骤
Mar 22 Javascript
红米手机抢购的js代码
Mar 10 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
js完整倒计时代码分享
Sep 18 Javascript
浅谈jquery中使用canvas的问题
Oct 10 Javascript
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
Feb 19 Javascript
3分钟掌握常用的JS操作JSON方法总结
Apr 25 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
Aug 19 Javascript
如何将百度地图包装成Vue的组件的方法步骤
Feb 12 Javascript
nuxt 每个页面head标签内容设置方式
Nov 05 Javascript
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
小程序实现密码输入框
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中的extract的作用分析
2008/04/09 PHP
php中的strpos使用示例
2014/02/27 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
tagName的使用,留一笔
2006/06/26 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
学习并汇集javascript匿名函数
2010/11/25 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
Promise.all中对于reject的处理方法
2018/08/01 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
Python性能优化技巧
2015/03/09 Python
python实现的简单文本类游戏实例
2015/04/28 Python
Python使用Scrapy爬取妹子图
2015/05/28 Python
Django中Forms的使用代码解析
2018/02/10 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
python 实现有道翻译功能
2021/02/26 Python
汽车销售求职自荐信
2013/10/01 职场文书
毕业晚会主持词
2014/03/24 职场文书
护理专业自荐书
2014/06/04 职场文书
综艺节目策划方案
2014/06/13 职场文书
经理聘任证明
2015/03/02 职场文书
银行实习推荐信
2015/03/27 职场文书
小学生暑假生活总结
2015/07/13 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
分享7个 Python 实战项目练习
2022/03/03 Python
排查Tomcat进程假死的问题
2022/05/06 Servers