@group_wtf_npm/loading
Version:
loading加载
45 lines (41 loc) • 1.36 kB
JavaScript
import GlobalLoading from './GlobalLoading.js';
import WtfLoading from './WtfLoading.js';
/**
* 初始化全局加载管理器
*
* 该函数用于注册自定义元素 `wtf-loading`,并返回一个全局加载管理器的实例。
* 如果自定义元素已经注册,则不会重复注册。
*
* @param {string} [tag='wtf-loading'] - 自定义元素的名称,默认为 `wtf-loading`。
* @param userOpts 其它配置项
* @returns {GlobalLoading} 返回一个全局加载管理器的实例。
*/
function initGlobalLoading(tag = 'wtf-loading', userOpts) {
// 检查自定义元素是否已经注册
const LoadTag = customElements.get(tag);
if (!LoadTag) customElements.define(tag, WtfLoading);
// 返回全局加载管理器实例
const opts = Object.assign({ tag }, userOpts);
return new GlobalLoading(opts);
};
class Loading extends GlobalLoading {
constructor(userOpts) {
super(userOpts);
this.register();
}
register = () => {
// 检查自定义元素是否已经注册
const { tag } = this.opts;
const LoadTag = customElements.get(tag);
if (!LoadTag) customElements.define(tag, WtfLoading);
this.init();
}
}
// 命名导出
export {
Loading,
WtfLoading,
GlobalLoading,
initGlobalLoading,
initGlobalLoading as default
};