详解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 相关文章推荐
javascript 学习笔记(八)javascript对象
Apr 12 Javascript
使用jquery实现div的tab切换实例代码
May 27 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
Sep 18 Javascript
javascript实现的固定位置悬浮窗口实例
Apr 30 Javascript
javascript常用方法总结
May 14 Javascript
Uploadify上传文件方法
Mar 16 Javascript
jquery结合html实现中英文页面切换
Nov 29 Javascript
javascript实现二叉树遍历的代码
Jun 08 Javascript
JavaScrip关于创建常量的知识点
Dec 07 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
Aug 12 Javascript
微信小程序吸底区域适配iPhoneX的实现
Apr 09 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 Javascript
详解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
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
实时获取Python的print输出流方法
2019/01/07 Python
python线程信号量semaphore使用解析
2019/11/30 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
文职个人求职信范文
2013/09/23 职场文书
学习委员自我鉴定
2014/01/13 职场文书
关于安全的标语
2014/06/10 职场文书
小学课外阅读总结
2014/07/09 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
停电放假通知
2015/04/14 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
php 原生分页
2021/04/01 PHP
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫