详解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之小练习代码
Oct 12 Javascript
Javascript日期对象的dateAdd与dateDiff方法
Nov 18 Javascript
JS判断数组中是否有重复值得三种实用方法
Aug 16 Javascript
JavaSript中变量的作用域闭包的深入理解
May 12 Javascript
jquery中each遍历对象和数组示例
Aug 05 Javascript
javascript实现3D切换焦点图
Oct 16 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
Vue+axios 实现http拦截及路由拦截实例
Apr 25 Javascript
浅谈原型对象的常用开发模式
Jul 22 Javascript
深入了解JavaScript 私有化
May 30 Javascript
微信小程序实现写入读取缓存详解
Aug 30 Javascript
vue源码中的检测方法的实现
Sep 26 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 数组排序方法总结 推荐收藏
2010/06/30 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
Jquery中获取iframe的代码
2011/01/11 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
js post提交调用方法
2014/02/12 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
vuex实现购物车功能
2020/06/28 Javascript
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
跟老齐学Python之Import 模块
2014/10/13 Python
Python实现图片转字符画的示例
2017/08/22 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
python安装scipy的步骤解析
2019/09/28 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
struct与class的区别
2014/02/03 面试题
数控技术专科生自我评价
2014/01/08 职场文书
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
新闻学专业个人求职信写作
2014/02/04 职场文书
学生鉴定评语大全
2014/05/05 职场文书
倡议书格式
2014/08/30 职场文书
中标通知书格式
2015/04/17 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
美元符号 $
2022/02/17 杂记