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 相关文章推荐
Gird组件 Part-3:范例RSSFeed Viewer
Mar 10 Javascript
Javascript 实现TreeView CheckBox全选效果
Jan 11 Javascript
javaScript面向对象继承方法经典实现
Aug 20 Javascript
node.js中的http.response.write方法使用说明
Dec 14 Javascript
prototype.js常用函数详解
Jun 18 Javascript
Javascript 实现计算器时间功能详解及实例(二)
Jan 08 Javascript
js实现移动端微信页面禁止字体放大
Feb 16 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
解决vue无法设置滚动位置的问题
Oct 07 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
Jan 19 Javascript
layui监听单元格编辑前后交互的例子
Sep 16 Javascript
JS实现密码框效果
Sep 10 Javascript
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
?繁体转换的class
2006/10/09 PHP
也谈php网站在线人数统计
2008/04/09 PHP
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
Python从MP3文件获取id3的方法
2015/06/15 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
Windows下安装Scrapy
2018/10/17 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
python 动态调用函数实例解析
2019/10/21 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
Python运算符+与+=的方法实例
2021/02/18 Python
外包公司软件测试工程师
2014/11/01 面试题
心理学专业毕业生推荐信范文
2013/11/21 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
励志演讲稿600字
2014/08/21 职场文书
公司演讲稿开场白
2014/08/25 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
小学见习报告
2014/10/31 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书