官方文档
NProgress 是一个轻量的页面顶部加载进度条库,常用于 SPA 路由切换、Ajax 请求时提示用户”页面正在加载”。它依赖 requestAnimationFrame 自动添加过渡动画,体积小、无依赖。
安装
使用
1 2 3 4 5 6 7 8 9 10 11
| import "nprogress/nprogress.css"; import NProgress from "nprogress"; NProgress.configure({ showSpinner: false });
NProgress.start();
NProgress.done();
NProgress.set(0.0); NProgress.set(0.4); NProgress.set(1.0);
|
在 Vue Router 中使用
1 2 3 4 5 6 7
| router.beforeEach((to, from, next) => { NProgress.start(); next(); }); router.afterEach(() => { NProgress.done(); });
|
常用配置
1 2 3 4 5 6 7
| NProgress.configure({ showSpinner: false, minimum: 0.1, easing: "ease", speed: 200, trickleSpeed: 200, });
|
API 一览
| 方法 |
说明 |
NProgress.start() |
开始显示进度条,从 0 开始自动递增 |
NProgress.done() |
进度到 100% 并隐藏进度条 |
NProgress.set(n) |
手动设置进度值(0 ~ 1) |
NProgress.inc(n?) |
按指定量递增(默认随机小增量) |
NProgress.configure(obj) |
全局配置(是否显示 spinner、动画参数等) |
自定义进度条样式
NProgress 默认显示在页面顶部,可通过 CSS 修改 #nprogress .bar 的高度与颜色,使其融入站点主题:
1 2 3 4
| #nprogress .bar { background: #409eff; height: 3px; }
|
CodePen 示例