详解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 相关文章推荐
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
Oct 23 Javascript
juery框架写的弹窗效果适合新手
Nov 27 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
多引号嵌套的变量命名的问题
May 09 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
JS字符串的切分用法实例
Feb 22 Javascript
jquery 抽奖小程序实现代码
Oct 12 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
Jan 19 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
Apr 17 Javascript
elementui的默认样式修改方法
Feb 23 Javascript
基于JavaScript实现表格隔行换色
May 08 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中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
使用js 设置url参数
2013/07/08 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
vuex存取值和映射函数使用说明
2020/07/24 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
python迭代器与生成器详解
2016/03/10 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
办理信用卡工作证明
2014/01/11 职场文书
打造完美自荐信
2014/01/24 职场文书
团队经理竞聘书
2014/03/31 职场文书
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL