在打开或切换到一个新的页面的时候,有时会发起一些请求去请求数据,然后渲染页面,这一个过程是需要耗费时间的,所以有的页面会设置一个loading效果,一种是在页面中央放一个不停地转圈圈。
除了这种方式,我们还可以在页面顶部显示一个进度条,表示loading效果。
1、安装
npm install --save nprogress
2、引入
在main.js中引入,得到一个全局的对象
import NProgress from "nprogress"
import 'nprogress/nprogress.css'
3、使用
NProgress.start();//显示进度条
NProgress.done();//隐藏进度条
4、使用举例
什么时候调用start方法,什么时候调用done方法呢?
等待是由于发起请求这一过程需要时间,所以我们在请求相关的拦截器当中去出发这两个方法。
- 在请求拦截器中展示进度条
axios.interceptors.request.use(config=>{
NProgress.start();
。。。
return config;
})
})
- 在响应拦截器中隐藏进度条;
axios.interceptors.response.use(config=>{
NProgress.done();
return config;