需求:打开一个页面时,往往会伴随一些请求,并且会在页面上方出现进度条。
原理:在我们发起请求的时候开启进度条,在请求成功后关闭进度条
实现:所以只需要在request.js中进行配置,在页面加载时发起了一个请求,此时页面上方出现蓝色进度条,收到响应数据后关闭进度条。在拦截器加。
1、安装
npm install nprogress --save
2、对应的request.js设置
starte() 进度条开始。donee()进度条结束
可以通过修改nprogress.css文件的background来修改进度条颜色。
import axios from "axios"; //引入进度条 import nprogress from 'nprogress'; //引入进度条样式 import "nprogress/nprogress.css"; //1、对axios二次封装 const requests = axios.create({ //基础路径,requests发出的请求在端口号后面会跟改baseURl baseURL:'/api', timeout: 5000, }) //2、配置请求拦截器 requests.interceptors.request.use(config => { //config内主要是对请求头Header配置 //比如添加token //开启进度条 nprogress.start(); return config; }) //3、配置相应拦截器 requests.interceptors.response.use((res) => { //成功的回调函数 //响应成功,关闭进度条 nprogress.done() return res.data; },(error) => { //失败的回调函数 console.log("响应失败"+error) return Promise.reject(new Error('fail')) }) //4、对外暴露 export default requests;