打开一个页面时,往往会伴随一些请求,并且会在页面上方出现进度条。它的原理时,在我们发起请求的时候开启进度条,在请求成功后关闭进度条,所以只需要在request.js中进行配置。
如下图所示,我们页面加载时发起了一个请求,此时页面上方出现蓝色进度条
1.安装
2.使用
import axios from "axios";
//引入进度条
import nprogress from "nprogress";
//引入进度条样式
import "nprogress/nprogress.css"
//1、对axios进行二次封装
//利用axios对象的方法creach ,创建一个axios实例
const requests = axios.create({
//基础路径,requests发出的请求在端口号后面会跟改baseURl
baseURL: '/api',
timeout: 5000,
})
//2、配置请求拦截器
requests.interceptors.request.use(config => {
//config内主要是对请求头Header配置
//进度条开始
nprogress.start()
return config;
})
//3、配置相应拦截器
requests.interceptors.response.use((res) => {
//成功的回调函数
//进度条结束
nprogress.done()
return res.data;
}, (error) => {
//失败的回调函数
console.log("响应失败" + error)
return Promise.reject(new Error('faile'))
})
//4、对外暴露
export default requests;
3.可以通过修改nprogress.css文件的background来修改进度条颜色。
#nprogress .bar {
background: rgb(47, 221, 34);
position: fixed;
z-index: 1031;
top: 0;
left: 0;
width: 100%;
height: 2px;
}