找到一个封装不错的loading插件 web-loading

431 阅读2分钟

源码

Github传送

文档

文档传送

简述

在开发简单的前端项目时,确实我们loading需求不是很大,使用常见UI框架都会有自带loading功能,如果实在有自定义方面的需求可以使用html+css完全是可以实现的,偷点懒也可以找设计要一个SVG或者GIF动态图片。

但这些loading方式都会有利弊,当我在多个不同的数据大屏项目中,领导还需要显示特殊并不同的loading时,就显得很繁琐,需要在loading封装上下功夫,还得各种特效,因为loading是全局的,可能还会影响到其他的DOM元素,于是为了方便与自己写了这个web-loading这个插件,它默认实现了许多model加载方式,并且兼容了html+css的方式显示动画,这样每次数据大屏项目中需要用到特殊的loading时只需要canvas绘制这一层就行,无需担心封装的问题,插件还可以选择是全局显示还是范围显示等等。

安装

根据自己的包管理工具下载。

npm install web-loading

#使用

#CDN引入

<script src="https://cdn.jsdelivr.net/npm/web-loading"></script>

#工程项目引入

import type { LoadingType } from "web-loading";
import { initLoading } from "web-loading";
let webLoading: LoadingType = initLoading({
  // 自定义options
})
  • 参数

    • options?:OptionsType
  • 返回

    • webLoading:LoadingType

#获取元素

// 无框架情况
let dom = document.querySelector('xxx')
// vue
let dom = ref()
// ...如果是FULL或MINI不需要获取元素

#启动

// 注意:在dom加载完成后在调用loading
window.onload = function () {
  webLoading.loading(dom)
}

参数

  • dom:挂载的HtmlElement元素
  • options?:OptionsType,支持覆盖options

#启动方式

DOMFULLMINI三种启动方式都需要基于HtmlElement,这里FULLMINI是扩展的启动方式,参数中无须提供HtemlElment,是因为WebLoading已经处理的元素的创建到消失的流程。

import type { LoadingType } from "web-loading";
import { fullLoading,miniLoading LOADING_TYPES } from "web-loading";
​
let webLoading: LoadingType = fullLoading() // 全屏
// let webLoading: LoadingType = miniLoading() // 移动端// 启动(如果是MINI或者FULL无需传递dom)
webLoading.loading()

具体配置看下一节