1 安装
npm install --save nprogress
2 引入
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
3 配置
NProgress.configure({
easing: 'ease', // 动画方式,和css动画属性一样(默认:ease)
speed: 500, // 递增进度条的速度,单位ms(默认: 200)
showSpinner: false, // 是否显示加载ico
trickle: true,//是否自动递增
trickleSpeed: 200, // 自动递增间隔
minimum: 0.3, // 初始化时的最小百分比,0-1(默认:0.08)
parent: '#container'//指定此选项以更改父容器(默认:body)
})
4 使用
NProgress.start()// 开始
NProgress.set(0.4) // 设置进度,0-1
NProgress.inc() // 增加一点点
NProgress.done() // 完成
5 使用场景
- 路由中使用
// 导航全局前置守卫
router.beforeEach((to, from, next) => {
//每次切换页面时,调用进度条
NProgress.start();
// 这个一定要加,没有next()页面不会跳转的。
next();
}
router.afterEach(() => {
// 在即将进入新的页面组件前,关闭掉进度条
NProgress.done();
})
- 封装axios使用
//在request拦截器中显示进度条Nprogress.start()
axios.interceptors.request.use(config => {
//请求开始时显示进度条
Nprogress.start()
return config
})
//response中完成进度条Nprogress.done()
axios.interceptors.response.use(config => {
//服务响应时完成进度条
Nprogress.done()
return config
})
6 改变颜色
在App.vue中的style中增加:
#nprogress .bar {
background: red !important; //自定义颜色
}