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 相关文章推荐
在IE下:float属性会影响offsetTop的取值
Dec 22 Javascript
用javascript作一个通用向导说明
Aug 30 Javascript
纯js简单日历实现代码
Oct 05 Javascript
jQuery 无限级菜单的简单实例
Feb 21 Javascript
SuperSlide标签切换、焦点图多种组合插件
Mar 14 Javascript
微信小程序 合法域名校验出错详解及解决办法
Mar 09 Javascript
详解Vue-基本标签和自定义控件
Mar 24 Javascript
详解vue 单页应用(spa)前端路由实现原理
Apr 04 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
Apr 08 Javascript
Angular刷新当前页面的实现方法
Nov 21 Javascript
vue-cli 3 全局过滤器的实例代码详解
Jun 03 Javascript
如何在JavaScript中正确处理变量
Dec 25 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 进程锁定问题分析研究
2009/11/24 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
python中偏函数partial用法实例分析
2015/07/08 Python
python发送告警邮件脚本
2018/09/17 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
python实现查找所有程序的安装信息
2020/02/18 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
Python 字典中的所有方法及用法
2020/06/10 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
拉丁舞学习者的自我评价
2013/10/27 职场文书
装配出错检讨书
2014/09/23 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
亲戚关系证明
2015/06/24 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript