详解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 相关文章推荐
jQuery+jqmodal弹出窗口实现代码分明
Jun 14 Javascript
js 通用javascript函数库整理
Aug 14 Javascript
js两行代码按指定格式输出日期时间
Oct 21 Javascript
JsRender实用入门教程
Oct 31 Javascript
JavaScript时间转换处理函数
Apr 14 Javascript
AngularJs实现分页功能不带省略号的代码
May 30 Javascript
JavaScript字符串_动力节点Java学院整理
Jun 27 Javascript
JS实现数组去重方法总结(六种方法)
Jul 14 Javascript
Angular4绑定html内容出现警告的处理方法
Nov 03 Javascript
layui的layedit富文本赋值方法
Sep 18 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
Nov 26 Javascript
JS+CSS实现炫酷光感效果
Sep 05 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将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
php给图片加文字水印
2015/07/31 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
银行实习人员自我鉴定
2013/09/22 职场文书
客服实习的个人自我鉴定
2013/10/20 职场文书
自我介绍演讲稿
2014/01/15 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
新教师培训方案
2014/06/08 职场文书
2014年保育员工作总结
2014/12/02 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
理想国读书笔记
2015/06/25 职场文书
《三国志》赏析
2019/08/27 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫