写在前面
NProgress是一个轻量级的进度条组件,在Github上已经有上万star数了,所以该组件的使用频率还是高的。
安装
npm i -S nprogress
或
npm i -S nprogress
使用yarn
yarn add nprogress
简单的封装使用
在项目中新建一个文件目录nprogress,在新建一个文件nprogress.ts
后引入NProgress和CSS样式文件,示例代码如下:
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
然后我们对进度条进行一些基础配置,示例代码如下:
//全局进度条的配置
NProgress.configure({
easing: 'ease', // 动画方式
speed: 1000, // 递增进度条的速度
showSpinner: false, // 是否显示加载ico
trickleSpeed: 200, // 自动递增间隔
minimum: 0.3, // 更改启动时使用的最小百分比
parent: 'body', //指定进度条的父容器
})
最后我们封装两个方法,一个是开始方法,一个是结束的方法,示例代码如下:
// 打开进度条
export const start = () => {
NProgress.start()
}
// 关闭进度条
export const close = () => {
NProgress.done()
}
在Vue切换路由时展示进度条
现在我们就来使用我们上面封装的Nprogress,这里我们在VueRouter的配置文件中使用,实现切换路由时在顶部展示进度条,首先我们打开VueRouter的配置文件,然后引入我们封装的Nprogress:
// router/index.ts
import { close, start } from '@/nprogress/nprogress'
然后我们在创建的Router实例中使用这两个方法:
const router = createRouter({
routes,
history: createWebHistory(),
})
router.beforeEach((pre, next) => {
start()
})
router.afterEach(() => {
close()
}
beforeEach:路由切换之前触发;
afterEach:路由切换完成后触发;
现在我们切换路由就可以实现顶部进度条的切换。