写在前面
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
:路由切换完成后触发;
现在我们切换路由就可以实现顶部进度条的切换。
到此这篇关于详解如何在Vue3+TS的项目中使用NProgress进度条的文章就介绍到这了,更多相关Vue3 NProgress进度条内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!