详解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宝典学习笔记
Feb 07 Javascript
js跨域和ajax 跨域问题的实现思路
Sep 05 Javascript
javascript重复绑定事件造成的后果说明
Mar 02 Javascript
JS定时关闭窗口的实例
May 22 Javascript
JavaScript内存管理介绍
Mar 13 Javascript
JavaScript中的replace()方法使用详解
Jun 06 Javascript
JavaScript实现表格快速变色效果代码
Aug 19 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
Mar 22 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
May 12 Javascript
JavaScript用构造函数如何获取变量的类型名
Dec 23 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
JavaScript 语句之常用 for 循环详解
Mar 29 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制作静态网站的模板框架(二)
2006/10/09 PHP
用PHP实现Ftp用户的在线管理的代码
2007/03/06 PHP
基于PHP制作验证码
2016/10/12 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
js实现简单扫雷
2020/11/27 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
python自带的http模块详解
2016/11/06 Python
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Django实现内容缓存实例方法
2020/06/30 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
公务员保密承诺书
2014/03/27 职场文书
个人贷款承诺书
2014/03/28 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
工人先锋号申报材料
2014/12/29 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
Django操作cookie的实现
2021/05/26 Python