NProgresss使用以及封装

本文介绍了前端轻量级进度条组件 NProgress 的使用,包括在项目中的安装、封装过程以及如何在 Axios 中应用。同时,文章还展示了如何更改进度条颜色,并提供了实际效果的截图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方网站:NProgress: slim progress bars in JavaScript

下载地址:https://github.com/rstacruz/nprogress

🌈前言

NProgress 是一个轻量级的进度条组件,虽然这个组件已经好久没有更新了,但是该组件的使用频率还是高的。

🚀简单封装

1️⃣在项目中安装

这里的包管理工具使用的npm,如果你使用的是yarn或者pnpm,请自行更改安装命令,安装命令如下:

npm i nprogress -S

因为我们是TS的项目,还需要安装其类型声明文件,命令如下:

npm i @types/nprogress -D

在使用时如下方式引入就行:

// 引入进度条
import nprogress from 'nprogress'
​
// 引入进度条样式
import 'nprogress/nprogress.css'

2️⃣封装

为了规范点,进行简单的封装,在 utils 目录下新建 nporgress.ts 文件,引入 NProgress 和 CSS 样式文件。

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

根据官方提供的文档,我们可以进行修改一些配置。

NProgress.configure({
  easing: 'ease', // 动画方式
  speed: 1000, // 递增进度条的速度
  showSpinner: false, // 是否显示加载ico
  trickleSpeed: 200, // 自动递增间隔
  minimum: 0.3, // 更改启动时使用的最小百分比
  parent: 'body', //指定进度条的父容器
})

最后我们封装两个方法,一个是开始方法,一个是结束的方法。

// 开启进度条
export const start = () => {
  NProgress.start();
};
 
// 关闭进度条
export const close = () => {
  NProgress.done();
};

3️⃣使用

一般我们会在页面切换,也就是跳路由的时候会显示进度条,因此我们需要在 beforeEach(路由切换之前) 和 afterEach(路由切换完成后) 使用我们定义好的 closestart 方法。首先在 router 中导入(根据情况自行导入),我的是在 src/router/index.ts

// 导入进度条
import { start, close } from "@/utils/nporgress";
在 beforeEach 和 afterEach中使用

router.beforeEach((pre, next) => {
  start()
  // 其他逻辑
})
 
router.afterEach(() => {
  close()
})

💡Axios中使用

import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
 
// 引入进度条
import nprogress from 'nprogress'
// 引入进度条样式
import 'nprogress/nprogress.css'
 
// 创建axios-实例
const requests = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_URL,
    timeout: 5000,
    headers: {......},
});
 
// 请求拦截
requests.interceptors.request.use((config) => {
 
    //开始加载-进度条开始
    nprogress.start();
 
    return config;
})
 
// 响应拦截
requests.interceptors.response.use((res) => {
    // 结束加载-进度条结束
    nprogress.done();
 
    // 请求成功
    return res;
}, (error) => {
    return Promise.reject(error)
})
 
export default requests;

🔔更改进度的颜色

进度条有一个默认的颜色,当然我们也可以更改为我们的想要的颜色,具体操作如下:

在 依赖包 node_modules 中找到 nprogress 中找到 nprogress.css 文件

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值