本文介绍 Vue 进度条插件 NProgress 的用法
1. 安装
npm install --save nprogress
2. 引入
在 main.js 文件中引入以下内容
import NProgress from 'nprogress' // nprogress插件import 'nprogress/nprogress.css' // nprogress样式
3. 显示声明 Vue 使用该插件
Vue.use(NProgress);
4. 对 NProgress 插件的相关参数进行设置
NProgress.configure({easing: 'ease', // 动画方式speed: 500, // 递增进度条的速度showSpinner: false, // 是否显示加载icotrickleSpeed: 200, // 自动递增间隔minimum: 0.3 // 初始化时的最小百分比});
5. 设置 NProgress 插件的加载效果何时显示
第一种显示方式:进入路由前显示进度条,进入路由后关闭进度条。这种方式的缺点是当网速太慢,页面中图片等资源还没有加载完成时,进度条已经关闭。
// 当路由进入前,启动进度条router.beforeEach((to, from , next) => {NProgress.start(); // 每次切换页面时,调用进度条next();});// 当路由进入后:关闭进度条router.afterEach(() => {NProgress.done(); // 在即将进入新的页面组件前,关闭掉进度条});
第二种显示方式:页面资源开始加载时显示进度条,页面所有资源加载完成后关闭进度条。这种方式解决了方式一中存在的问题,但当仅有路由跳转、没有待加载的资源时不显示进度条,因此两种方式配合使用效果更好。
Vue.http.interceptors.push((request, next) => {NProgress.start();next(() => {NProgress.done();});});
6. 修改样式
记得使用 !important 来覆盖原有的样式
/*** 修改进度条样式*/#nprogress .bar {background: #fff !important;height: 56px !important;opacity: 0.5;box-shadow: none;}
