详解vue-router 2.0 常用基础知识点之导航钩子


Posted in Javascript onMay 10, 2017

导航钩子

vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消。有多种方式可以在路由导航发生时执行钩子:全局的, 单个路由独享的, 或者组件级的。

全局钩子

const router = new VueRouter({ ... })
router.beforeEach((to, from, next) => {
  // do something 
  next();
});

router.afterEach((to, from, next) => {
  console.log(to.path);
});

每个钩子方法接收三个参数:

  1. to: Route : 即将要进入的目标 [路由对象]
  2. from: Route : 当前导航正要离开的路由
  3. next: Function : 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next

方法的调用参数。

  1. next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是confirmed (确认的)。
  2. next(false): 中断当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from
  3. 路由对应的地址。
  4. next('/') 或者 next({ path: '/' }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。

确保要调用 next方法,否则钩子就不会被 resolved。

组件内的钩子

let fromPath = '';
export default{
  beforeRouteEnter (to, from, next) {
     // 在渲染该组件的对应路由被 confirm 前调用
     // 不!能!获取组件实例 `this`
     // 因为当钩子执行前,组件实例还没被创建
     fromPath = from.path;
     next();
  },
}

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

Javascript 相关文章推荐
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
Jul 15 Javascript
canvas实现钟表效果
Feb 13 Javascript
原生JS实现图片懒加载(lazyload)实例
Jun 13 Javascript
微信小程序实现收藏与取消收藏切换图片功能
Aug 03 Javascript
详解javascript appendChild()的完整功能
Aug 18 Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 Javascript
浅析js中mvvm模式实现的原理
Oct 06 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
node+vue实现文件上传功能
May 28 Javascript
微信小程序:报错(in promise) MiniProgramError
Oct 30 Javascript
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
详解vue-router 2.0 常用基础知识点之router.push()
May 10 #Javascript
JavaScript通过filereader接口读取文件
May 10 #Javascript
关于vue-router路径计算问题
May 10 #Javascript
JavaScript使用readAsDataUrl方法预览图片
May 10 #Javascript
Bootstrap table使用方法总结
May 10 #Javascript
将angular-ui的分页组件封装成指令的方法详解
May 10 #Javascript
vue-axios使用详解
May 10 #Javascript
You might like
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
MySQL最常见的操作语句小结
2015/05/07 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
python对文件的操作方法汇总
2020/02/28 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
基于matplotlib xticks用法详解
2020/04/16 Python
一道写SQL的面试题和答案
2013/11/19 面试题
求职简历中个人的自我评价
2013/12/25 职场文书
倡议书格式
2014/04/14 职场文书
《春笋》教学反思
2014/04/15 职场文书
女生节标语
2014/06/26 职场文书
五心教育心得体会
2014/09/04 职场文书
关于车尾的标语大全
2015/08/11 职场文书