写在前面
NProgress是一个轻量级的进度条组件,在Github上已经2.4万star数了,虽然这个组件已经好久没有更新了,最近一次更新是20年4月份,改了jQuery的版本,但是该组件的使用频率还是高的。
? 在项目中安装
这里的包管理工具使用的npm,如果你使用的是yarn或者pnpm,请自行更改安装命令,安装命令如下:
npm i nprogress -S
因为我们是TS的项目,还需要安装其类型声明文件,命令如下:
npm i @types/nprogress -D
? 简单的封装
现在我们对NProgress进行一下简单的封装,首先我们在utils
目录下创建要给nporgress.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 '/@/utils/nprogress'
然后我们在创建的Router实例中使用这两个方法:
const router = createRouter({ routes, history: createWebHistory(), }) router.beforeEach((pre, next) => { start() }) router.afterEach(() => { close() })
beforeEach
:路由切换之前触发;afterEach
:路由切换完成后触发;
现在我们切换路由就可以实现顶部进度条的切换。
您可能感兴趣的文章: