Vue项目页面跳转时浏览器窗口上方显示进度条功能


Posted in Javascript onMarch 26, 2020

在vue项目中,为了减少首屏加载的时间,通常会开启路由的懒加载。路由懒加载配合gizp确实能帮助我们大大的加快首屏的加载时间。

然而,路由懒加载会使得我们在第一次打开一个新页面的时候,会有一个加载时间。如果在这个时候我们没有一个提示的话,给人的感觉会是好像我点了页面跳转但是没反应。所以,这个时候我们可以加一个进度条来告知用户。

具体实现,我们使用NProgress这个滚动条效果插件。

1.安装:

cnpm install --save nprogress

2.在main.js中引入:

import NProgress from 'nprogress'
 import 'nprogress/nprogress.css'

3.在main.js中进行配置:

NProgress.configure({  
 easing: 'ease', // 动画方式 
 speed: 500, // 递增进度条的速度 
 showSpinner: false, // 是否显示加载ico 
 trickleSpeed: 200, // 自动递增间隔 
 minimum: 0.3 // 初始化时的最小百分比
})

4.在main.js中对路由钩子进行设置:

//当路由进入前
 router.beforeEach((to, from , next) => {
  // 每次切换页面时,调用进度条
 NProgress.start();
 // 若加载时间长且不定,担心进度条走完都没有加载完,可以调用

NProgress.inc();//这会以随机数量递增,且永远达不到100%,也可以设指定增量
 next();
 });
//当路由进入后:关闭进度条
router.afterEach(() => { 
 // 在即将进入新的页面组件前,关闭掉进度条
 NProgress.done()
})

补充:vue页面跳转方法

vue2.0在使用的过程中, .vue文件之间的跳转,需要在router里面配置path,通过路径跳转,html文件跳转如下:

<router-link to="/path"><button>跳转</button></router-link>

但是有时的需求是页面不直接跳转,有确认弹框或者其他事件,此时就需要在js中设置跳转,方法如下:

this.$ router.push({path: ‘/…'}); path为跳转路径,此方法会产生历史记录
this.$ router.push({name:'…'}) name也可以作为路由跳转
this.$ router.push({path:‘home',query:{obj:'…'}}) query:参数,可通过this.$ route.query.obj获取
this.$ router.push({path:‘home',params:{obj:'…'}}) query:参数,可通过this.$route.params.obj获取
this.$router.replace() 此方法不会产生历史记录
this.$router.go(n) 向前或向后跳转n个页面

总结

到此这篇关于Vue项目页面跳转时浏览器窗口上方显示进度条功能的文章就介绍到这了,更多相关vue 页面跳转进度条内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript检查数字是否为整数或浮点数的方法
Jun 09 Javascript
微信JSSDK上传图片
Aug 23 Javascript
JS onkeypress兼容性写法详解
Apr 27 Javascript
JavaScript学习笔记整理_关于表达式和语句
Sep 19 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
Vue表单类的父子组件数据传递示例
May 03 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
JS实现简单的点赞与踩功能示例
Dec 05 Javascript
通过vue手动封装on、emit、off的代码详解
May 29 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
Oct 30 Javascript
jQuery实现移动端扭蛋机抽奖
Nov 08 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
JavaScript定时器使用方法详解
Mar 26 #Javascript
js实现时钟定时器
Mar 26 #Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
Mar 26 #Javascript
原生JS实现留言板
Mar 26 #Javascript
vue在线动态切换主题色方案
Mar 26 #Javascript
javascript实现简单搜索功能
Mar 26 #Javascript
jQuery实现html可联动的百分比进度条
Mar 26 #jQuery
You might like
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
详解Python编程中time模块的使用
2015/11/20 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python如何实现异步调用函数执行
2019/07/08 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
酒店公关部经理岗位职责
2013/11/24 职场文书
销售人员自我评价
2014/02/01 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
解除劳动合同证明书
2014/09/26 职场文书
创业计划书之电动车企业
2019/10/11 职场文书