详解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 相关文章推荐
利用ASP发送和接收XML数据的处理方法与代码
Nov 13 Javascript
JavaScript null和undefined区别分析
Oct 14 Javascript
容易被忽略的JS脚本特性
Sep 13 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
Apr 02 Javascript
JS实现的3D拖拽翻页效果代码
Oct 31 Javascript
学习掌握JavaScript中this的使用技巧
Aug 29 Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 Javascript
webpack配置的最佳实践分享
Apr 21 Javascript
node将geojson转shp返回给前端的实现方法
May 29 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
Mar 20 jQuery
js实现网页随机验证码
Oct 19 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之面向对象
2013/05/15 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
JS实现的简单标签点击切换功能示例
2017/09/21 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
Python算法之栈(stack)的实现
2014/08/18 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
django实现用户登陆功能详解
2017/12/11 Python
解决Django中多条件查询的问题
2019/07/18 Python
python修改FTP服务器上的文件名
2019/09/11 Python
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
总经理办公室主任岗位职责
2013/11/12 职场文书
外语专业毕业生个人的自荐信
2013/11/19 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
考试作弊检讨
2015/01/27 职场文书
自主招生自荐信格式
2015/03/04 职场文书
2015年安全月活动总结
2015/03/26 职场文书
行政答辩状范文
2015/05/21 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL