详解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中的函数
Jan 22 Javascript
Javascript 获取链接(url)参数的方法
Feb 15 Javascript
Google AJAX 搜索 API实现代码
Nov 17 Javascript
JS构建页面的DOM节点结构的实现代码
Dec 09 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
Jul 15 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
基于jquery的手风琴图片展示效果实现方法
Dec 16 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
浅谈Angular4中常用管道
Sep 27 Javascript
bing Map 在vue项目中的使用详解
Apr 09 Javascript
JavaScript onclick事件使用方法详解
May 15 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 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
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
PHP 数组遍历顺序理解
2009/09/09 PHP
mysql总结之explain
2012/02/27 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
php依赖注入知识点详解
2019/09/23 PHP
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
JS制作简单的三级联动
2015/03/18 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
Python 发送邮件方法总结
2020/08/10 Python
如何用python免费看美剧
2020/08/11 Python
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
大专生工程监理求职信
2013/10/04 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
党支部承诺书范文
2014/03/28 职场文书
中学清明节活动总结
2014/07/04 职场文书
大学生个人求职信例文
2014/07/07 职场文书
女方离婚起诉书
2015/05/18 职场文书
2015年教师节广播稿
2015/08/19 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
MySQL 计算连续登录天数
2022/05/11 MySQL