详解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 相关文章推荐
js活用事件触发对象动作
Aug 10 Javascript
让你的网站可编辑的实现js代码
Oct 19 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
JQuery小知识
Oct 15 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
Sep 26 Javascript
AngularJS使用指令增强标准表单元素功能
Jul 01 Javascript
Javascript 事件冒泡机制详细介绍
Oct 10 Javascript
node.js通过axios实现网络请求的方法
Mar 05 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 Javascript
微信小程序云开发详细教程
May 16 Javascript
vue 实现走马灯效果
Oct 28 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函数与传递参数实例分析
2014/11/15 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
Python unittest模块用法实例分析
2018/05/25 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
大四学生毕业自荐信
2013/11/07 职场文书
《最可爱的人》教学反思
2014/02/14 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
立志成才演讲稿
2014/09/04 职场文书
门市房租房协议书
2014/12/04 职场文书
出租车拒载检讨书
2015/01/28 职场文书
音乐课外活动总结
2015/05/09 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
MySQL 数据类型选择原则
2021/05/27 MySQL
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang