给Nuxt3项目加上顶部加载条

二狗2021/04/06发布
nuxt

  • 零依赖:也不特别绑定到任何框架。
  • 小尺寸:< 500 字节
  • 易于使用: 只几行即可开始使用。支持TypeScript

安装

Terminal
npm i /bar-of-progress

#使用

在你的nuxt3项目下新建 plugins 目录以及 LoadingBar.js

plugins/LoadingBar.js
import ProgressBar from '@badrap/bar-of-progress';

const progress = new ProgressBar({
  // 进度条的大小(高度px)
  size: 2,
  // 进度条的颜色。
  color: "#29e",
  // 自定义类名
  className: "bar-of-progress",
  // 在进度条之前等待多少毫秒
  delay: 80,
});

export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.hook('page:start', () => progress.start());
  nuxtApp.hook('page:finish', () => progress.finish());
});

现在就有加载状态了

进度条不会立即显示,有一个 80 毫秒的宽限期,允许非常快速完成的任务避免显示进度条。

plugins/LoadingBar.js
export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.hook('page:start', () => progress.start());
  nuxtApp.hook('page:finish', () => progress.finish());
  nuxtApp.hook('page:finish', () => setTimeout(() => progress.finish(), 1000));
});