当前位置: 首页 > news >正文

一个轻量级、无依赖的 Loading 插件 —— @lijixuan/loading

  • 🚀 一个轻量级、无依赖的 Loading 插件 —— @lijixuan/loading
  • 📦 NPM地址:https://www.npmjs.com/package/@lijixuan/loading
  • 🧩 GitHub地址:https://github.com/lidaxuan/ldx-loading

前言
开发中,我们经常需要一个简洁好用的 Loading 组件,无论是请求数据时的全局遮罩,还是局部区域的加载提示,性能、兼容性和易用性都非常关键。在vue2中使用太过于繁琐!!!

<template><div class="" v-loading="loading"></div>
</template>
<script>
export default {data() {return {loading: false};},mounted() {this.loading = true;setTimeout(() => {this.loading = false;}, 2000);},
};
</script>

于是我开发了一个零依赖、支持原生 HTML、Vue2、Vue3 的 Loading 插件:@lijixuan/loading。欢迎大家试用、提 issue 或 PR!

✨ 项目特色

  • ✅ 零依赖:无需引入任何第三方库,纯原生 JS 实现。
  • 🎯 多框架支持:可直接用于 Vue2、Vue3 项目,也可在 原生 HTML 项目中直接调用。
  • 🎨 样式灵活:支持自定义颜色、文本、类名,支持全屏/局部模式。
  • 🧠 防重复点击机制:自动禁用触发按钮,防止重复提交请求。
  • 🧩 Element UI 风格:内置样式参考 Element UI,默认美观,开箱即用。
  • 🪄 按需调用:提供 open() / close() 方法,使用方式清晰明了。

🚀 快速开始
安装
npm i @lijixuan/loading或者yarn add @lijixuan/loading

使用方式
Vue2 / Vue3 中使用

<template><div class="page-asd"><div><div v-for="item in 3" :key="item">奥术大师多反而AV方式变奥术大师多反而AV方式变奥术大师多反而AV方式变奥术大师多反而AV方式变奥术大师多反而AV方式变</div></div><el-button  @click="click1($event)">按钮1</el-button><el-button type="primary" @click="click2($event)">按钮2</el-button><div type="primary" @click="click2($event)">按钮3-div</div></div>
</template><script>
import LdxLoading from "./LdxLoading.js";LdxLoading.init({text: "加载中...",customClass: "ldx-loading",color: 'green',// fullscreen:false
})
export default {name: "", // Pascal命名mixins: [],components: {Comp,Compcopy},props: {},data() {return {query: {name: "zs"},};},mounted() {// this.initPage();},methods: {async initPage() {const el = document.querySelector('.page-asd')LdxLoading.open(el, {text: "页面加载中"});const res = await this.getData(this.query);LdxLoading.close(el);},getData(query) {return new Promise((resolve, reject) => {setTimeout(() => {resolve({...query, age: 18});}, 1000);});},click1(event) {console.log("点击了")this.initPage();},click2(event) {console.log("event", Array.from(event.target.classList).includes('ldx-loading-mask'));const el = event.currentTarget; // 或 event.targetLdxLoading.open(el, {text: ""});setTimeout(() => {LdxLoading.close(el);}, 3000);}}
};
</script>
<style lang="scss" scoped>
.page-asd {width: 100%;height: 100%;background: pink;overflow-y: auto;
}
</style>

⚙️ 参数说明

参数类型默认值说明
targetHTMLElement Eventdocument.body触发的元素
textstring“”loading 文案
fullscreenbooleanfalse是否全屏遮罩
lockbooleantrue是否禁用目标按钮
customClassstring‘’自定义类名
colorstring#409EFFloading 颜色

📦 源码仓库
欢迎 star、fork、提 issue!
👉 GitHub地址:https://github.com/lidaxuan/ldx-loading

🤝 结语
这是一个简洁但实用的插件,希望能帮到你简化开发流程。未来我还会持续优化,计划加入:

✅ 自定义 SVG 动画支持

✅ 多实例栈管理

✅ 持续交互提示(如圈圈转 + 进度条)

如果你觉得这个项目有用,欢迎点个 Star ⭐,也欢迎在实际项目中应用它!你的鼓励是我持续更新的最大动力!

http://www.dtcms.com/a/307904.html

相关文章:

  • 常用设计模式系列(十七)—命令模式
  • 一天两道力扣(7)
  • 第1章:基础篇——第1节:基础操作与认识界面
  • 每日算法刷题Day56:7.31:leetcode 栈6道题,用时2h30min
  • 使用python写一套完整的智能体小程序
  • BasicAuthenticationFilter处理 HTTP 基本认证(Basic Authentication)的核心过滤器详解
  • python逻辑回归:数学原理到实战应用
  • 逻辑回归详解:从数学原理到实际应用
  • 界面组件DevExpress WPF中文教程:网格视图数据布局 - 数据单元格
  • CentOS7 使用Docker安装MinIO完整教程
  • 使用ANSYS在系统级对降压转换器进行建模
  • 在超算平台异构加速卡AI * 1卡的Ubuntu20.04环境下安装docker服务(未成功)
  • 本土DevOps平台Gitee如何重塑中国研发团队的工作流
  • 为Github Copilot创建自定义指令/说明/注意事项
  • 计算机网络中的socket是什么?编程语言中的socket编程又是什么?python的socket编程又该如何用?
  • 浅谈“压敏电阻”
  • Kubernetes (K8s) 部署Doris
  • 智慧城市多源监控协同精度↑28%:陌讯多模态融合算法实战解析
  • 技术分享 | 悬镜亮相于“2025开放原子开源生态大会软件物料清单(SBOM)”分论坛
  • 计算机网络学习(一、Cisco Packet Tracer软件安装)
  • MySQL查询语句详解
  • matlab - 算4个数的加减法
  • pytorch的自定义 CUDA 扩展怎么学习
  • Wise Duplicate Finder 重复文件查找工具 - 永久免费专业版文件去重工具
  • linux线程封装和互斥
  • 数模混合IC设计流程
  • Redis主从复制搭建
  • Cesium 快速入门(六)实体类型介绍
  • Java试题-选择题(2)
  • DeepSeek笔记(三):结合Flask实现以WEB方式访问本地部署的DeepSeek-R1模型