如何在Vue3+TS的项目中使用NProgress进度条

82 阅读1分钟

先放上大佬的文章链接,我怕大佬不分享了。所以自己留一份。最好是看大佬的,我的比较简介 地址:如何在Vue3+TS的项目中使用NProgress进度条NProgress是一个轻量级的进度条组件,在Github上已经 - 掘金

一、引包

因为是ts所以必须引入@types/nprogress

npm i nprogress -S
npm i @types/nprogress -D

二、封装工具方法

现在我们对NProgress进行一下简单的封装,首先我们在utils目录下创建要给nporgress.ts的文件,然后引入NProgress和CSS样式文件,示例代码如下:

// nporgress.ts
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()
}

三、封装好工具后,然后就在路由里面使用了

现在我们就来使用我们上面封装的Nprogress,这里我们在VueRouter的配置文件中使用,实现切换路由时在顶部展示进度条,首先我们打开VueRouter的配置文件,然后引入我们封装的Nprogress:

// router/index.ts
import { close, start } from '@/utils/nporgress'

然后再路由拦截器前后加上进度条开始和结束的方法就好了

// router/index.ts
router.beforeEach((pre, next) => {
  start()
})

router.afterEach(() => {
  close()
})