详解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 相关文章推荐
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
详解iframe与frame的区别
Jan 13 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
Mar 07 Javascript
轻松掌握JavaScript中介者模式
Aug 26 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
jQuery+正则+文本框只能输入数字的实现方法
Oct 07 Javascript
快速掌握jQuery插件开发
Jan 19 Javascript
layui复选框限制选择个数的方法
Sep 18 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
Mar 25 Javascript
JS前后端实现身份证号验证代码解析
Jul 23 Javascript
vue+vant实现购物车全选和反选功能
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 生成随机验证码图片代码
2010/02/08 PHP
PHP 全角转半角实现代码
2010/05/16 PHP
php下载文件的代码示例
2012/06/29 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
python数组循环处理方法
2019/08/26 Python
设计毕业生简历中的自我评价
2013/10/01 职场文书
成教毕业生自我鉴定
2013/10/23 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
租房安全协议书
2014/08/20 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
婚庆司仪开场白
2015/05/29 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL