简洁高效的进度条插件
发现同事在项目里新增了一个加载页面显示进度条的功能,当时就很疑惑,他是怎么判断一个页面的加载情况的?好奇心驱使下查看了同事写的代码,仅需4行代码就可以实现。

1 | import NProgress from 'nprogress'; |
翻阅了下官方文档,实现的本质就是进度条一开始就默默在增加,然后如果不done掉,他会一直到99.9,。嗯哼?这就解释了,为什么有时候遇到的下载会一直卡在99.9。
一、NProgress插件概述
NProgress是一个轻量级的、基于CSS和JavaScript的进度条插件。它的设计目标是提供一个简单易用的进度条解决方案,可以满足大部分网站和应用程序的需求。NProgress具有以下特点:
- 简洁轻量:NProgress代码精简,不依赖其他库,文件大小只有几KB,可以快速加载和使用。
- 自动控制:NProgress可以自动控制页面加载、Ajax请求等操作的进度显示,无需手动管理。
- 平滑动画:NProgress使用平滑的动画效果来展示进度变化,使用户感知更加舒适。
- 支持自定义:NProgress提供了丰富的自定义选项,可以根据项目需求调整进度条的颜色、速度、开始和结束时的回调函数等。
二、使用NProgress插件
- 引入NProgress:首先,我们需要在项目中引入NProgress插件的CSS和JavaScript文件。你可以从NProgress官方网站下载最新版本的文件,或者使用包管理工具安装。
- 初始化进度条:在页面加载完成时,我们可以使用以下代码初始化NProgress进度条:
1 | NProgress.start(); |
- 更新进度:在页面加载或Ajax请求过程中,我们可以使用以下代码更新进度条的进度:
1 | NProgress.set(0.5); |
其中,参数0.5表示50%的进度。
- 完成进度:当页面加载完成或Ajax请求结束时,我们可以使用以下代码完成进度条的显示:
1 | NProgress.done(); |
此时,进度条将以动画的形式消失。
- 自定义选项:如果需要自定义进度条的样式或行为,可以使用NProgress提供的一些选项。例如,我们可以使用以下代码更改进度条的颜色:
1 | NProgress.configure({ |
这将使进度条和旋转图标的颜色都变为红色。
三、总结
NProgress插件是一个功能强大、简洁高效的进度条插件,为网页加载和操作提供了良好的用户体验。通过简单的引入和初始化,我们可以轻松地在项目中使用NProgress,并根据需求进行自定义设置。