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使用prototype定义对象类型(转)[
Dec 22 Javascript
读jQuery之五(取DOM元素)
Jun 20 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
Feb 07 Javascript
js随机颜色代码的多种实现方式
Apr 23 Javascript
LABjs、RequireJS、SeaJS的区别
Mar 04 Javascript
用js读、写、删除Cookie代码续篇
Dec 03 Javascript
jquery form表单获取内容以及绑定数据
Feb 24 Javascript
js 定位到某个锚点的方法
Nov 19 Javascript
jQuery实现二维码扫描功能
Jan 09 Javascript
利用jQuery实现一个简单的表格上下翻页效果
Mar 14 Javascript
JS仿Base.js实现的继承示例
Apr 07 Javascript
Vue AST源码解析第一篇
Jul 19 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
英国办公用品商店:Office Outlet
2018/04/04 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
历史学专业毕业生求职信
2013/09/27 职场文书
金融专业推荐信
2013/11/14 职场文书
毕业寄语大全
2014/04/09 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
五四青年节的活动方案
2014/08/20 职场文书
上课不认真检讨书
2014/09/17 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
护士自荐信怎么写
2015/03/06 职场文书
反邪教观后感
2015/06/11 职场文书
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技