带你玩转NProgress进度条

简介: 带你玩转NProgress进度条

文章开始前先附上:NProgress官网Github地址

安装

使用npm安装

npm install --save nprogress

使用文件引入:

下载Github里文件:
在这里插入图片描述

引入下载的文件:

<script src='nprogress.js'></script>
<link rel='stylesheet' href='nprogress.css'/>

CDN引入:

基本用法

引入

import NProgress from "nprogress";
import "nprogress/nprogress.css";

开关和关闭

start()开启NProgress进度条
done()关闭NProgress进度条

NProgress.start();
NProgress.done();

高级用法

百分比

要设置进度百分比,可调用set(n) ,其中 n 介于0和1 之间

NProgress.set(0.0);     // 相当于 .start()
NProgress.set(0.4);
NProgress.set(1.0);     // 相当于 .done()

递增

使用inc(n)设置递增进度条,递增时永远不会到达100%,其中n为自设的递增值,如果不传入n,则将以随机量递增

NProgress.inc(0.4);
这将获得当前状态值并加0.4,直到状态为0.994

获取状态值

使用status()

 console.log(NProgress.status());

配置

最小值:minimum

更改启动时使用的最小百分比。(默认值:0.08)

NProgress.configure({ minimum: 0.1 });

缓动:easing 速度:speed

使用缓动(CSS 缓动字符串)和速度(以毫秒为单位)调整动画设置。(默认值:ease和200)

NProgress.configure({ easing: 'ease', speed: 500 });
css缓动可取值:
- `linear`    动画从开始到结束保持相同的速度。
- `ease`    默认值。动画有一个缓慢的开始,然后加速,在结束之前又变慢。
- `ease-in`    动画有一个缓慢的开始。
- `ease-out`    动画有一个缓慢的结束。
- `ease-in-out`    动画有一个缓慢的开始和一个缓慢的结束。
- `cubic-bezier(n,n,n,n)`    在三次贝塞尔(cubic-bezier)函数中定义自己的值。

可以是从 0 到 1 之间的数字值。

- `initial`    设置该属性为它的默认值。请参阅 initial。
- `inherit`    从父元素继承该属性。请参阅 inherit。

关闭递增:trickle

通过将其设置为false来关闭自动递增行为。(默认值:true)

NProgress.configure({ trickle: false });

递增频率:trickleSpeed

调整涓流/增量的频率,以毫秒为单位。

NProgress.configure({ trickleSpeed: 200 });

圆圈加载:showSpinner

showSpinner用来控制是否显示进度条右下方加载的小圆圈动画
通过将加载微调器设置为 false 来关闭它。(默认值:true)

NProgress.configure({ showSpinner: false });

父容器:parent

指定此选项可更改父容器。(默认值:body)

NProgress.configure({ parent: '#container' });

修改样式:

// 自定义进度条颜色
 #nprogress .bar {
     background: #333 !important; //自定义颜色
  }

使用技巧

NProgress最常见的用法是在发送请求或者路由跳转里进行可视化进度展示:

以在vue中使用为例

路由跳转中使用:

import { createRouter, createWebHistory } from "vue-router";
// 引入进度条
import NProgress from "nprogress";
import "nprogress/nprogress.css";
//路由实例
const router = createRouter({
    history: createWebHistory(),
    routes: [...],
});
//导航守卫
router.beforeEach(async(to, from, next) => {
    NProgress.start();
}
router.afterEach(() => {
    NProgress.done();
});

发送请求时中使用:

import axios from "axios";
import NProgress from "nprogress";
import "nprogress/nprogress.css";
// 进度条设置
NProgress.configure({
    easing: "ease-in-out",
    speed: 300,
    trickleSpeed: 300,
});
//创建axios的一个实例
const instance = axios.create({
        //...
});
//请求拦截器
instance.interceptors.request.use(
    (config) => {
        NProgress.start();
        //...
    },
    (error) =>{
        //...
    }
);
//响应拦截器
instance.interceptors.response.use(
    (response) => {
        //响应成功
        NProgress.done();
        //...
    },
    (error) => {
        NProgress.done();
        //...
    }
);
export default instance;

以上两种使用情景仅展示NProgress用法,路由配置和axios请求封装不做展示

相关文章
|
8月前
|
缓存 前端开发 JavaScript
Vue微服务架构实践:从单应用到微前端的落地方案
本文详解Vue微前端架构,针对大型项目面临的代码冗余、协作困难等问题,拆解从子应用改造、主应用搭建到部署优化的全流程。基于qiankun框架,实现团队独立开发、技术栈灵活、增量升级与独立部署,提升系统可维护性与扩展性,为中大型前端项目提供落地实践方案。
1714 0
|
运维 Kubernetes Cloud Native
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(一)
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(一)
2176 0
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(一)
|
前端开发 JavaScript 安全
入门Vue+.NET 8 Web Api记录(一)
入门Vue+.NET 8 Web Api记录(一)
937 5
Vue3 中使用 Event Bus
【10月更文挑战第16天】Event Bus 是 Vue3 中一种简单而实用的通信方式,在一些简单的场景中可以发挥重要作用。但在实际应用中,要根据项目的具体需求和复杂度,选择合适的通信方式,以实现最佳的性能和可维护性。同时,要遵循最佳实践,合理使用 Event Bus,避免出现问题。
1727 160
|
JSON 前端开发 JavaScript
前端使用lottie-web,使用AE导出的JSON动画贴心教程
前端使用lottie-web,使用AE导出的JSON动画贴心教程
2634 2
|
Java Maven
IDEA中查看源码点击Download Sources时出现Cannot download sources的问题复现及解决
IDEA中查看源码点击Download Sources时出现Cannot download sources的问题复现及解决
2819 0
|
JavaScript 前端开发 API
vue2 /vue3【nextTick】的使用方法及实现原理,一文全搞懂!
vue2 /vue3【nextTick】的使用方法及实现原理,一文全搞懂!
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
374 0