Vue3 开发福音!这款轻量化加载插件,3 步搞定所有加载场景
做 Vue3 开发的小伙伴应该都懂,加载动画是提升用户体验的关键细节 —— 页面跳转时的空白、接口请求时的等待,少了加载提示很容易让用户产生焦虑。但自定义封装加载组件太折腾了:要适配路由、接口不同场景,要调样式匹配品牌,写多了还全是重复代码,费时又费力。
今天给大家安利一款专为 Vue3 打造的轻量化加载插件vue3-loading-plug,堪称加载动画的 “懒人神器”!一行命令安装,三步完成集成,内置双加载类型、七种动画效果,还支持全维度样式定制,性能拉满还不用重复造轮子,直接把开发效率拉满💥!
官方文档指路:https://huo-zai-feng-lang-li.github.io/vue3-tools-docs/vue3-loading-plug.html
🔥 三大核心优势,吊打自定义封装
这款插件的设计完全贴合 Vue3 实际开发需求,相比自己手写加载组件,优势直接拉满,覆盖所有常见开发场景:
双加载类型内置,场景精准适配
不用再单独封装路由和接口的加载效果!插件自带全局大加载 Loading和请求小加载 smallLoading:
-
全局大加载:适配页面刷新、路由跳转等全局场景; -
请求小加载:适配单个接口请求,还自带进度条展示,体验更优。
七种加载效果,随机 / 指定任你选
默认不指定类型时,插件会随机展示七种加载动画,轻松满足不同项目的 UI 设计需求;如果有固定风格要求,直接指定数字即可锁定效果,不用自己写动画样式。
全维度定制 + 高性能,颜值性能双在线
支持加载动画、遮罩层的色彩自定义,十六进制、RGB、RGBA 格式都兼容,遮罩层还能调透明度,完美匹配项目品牌视觉;同时插件采用动态导入 + Map 优化,不占用多余资源,保证项目运行流畅。
此外,插件还支持全局生效配置,仅需在入口文件和拦截器中简单设置,就能实现全项目加载效果统一管理,大幅减少重复代码!
🚀 三步极速集成,npm/pnpm 都适配
从安装到实现基础加载效果,全程不超过 5 分钟,npm 和 pnpm 包管理工具都能兼容,新手也能直接抄作业!
第一步:一行命令安装
在项目根目录执行以下命令,二选一即可:
# npm 安装
npm install vue3-loading-plug
# pnpm 安装
pnpm install vue3-loading-plug
第二步:全局注册,入口文件一键配置
在项目主入口文件(main.js/main.ts)中,导入并通过 app.use () 完成全局注册,这是插件全局生效的基础:
import Loading from"vue3-loading-plug";
app.use(Loading).mount("#app");
第三步:场景化使用,路由 / 接口按需配置
插件的两大加载类型对应不同场景,配置极简,精准控制生效范围,直接复制代码稍作修改即可使用!
🔹 全局大加载:路由跳转 / 页面刷新专用
在路由文件中配置拦截器,仅需在路由元信息中添加loading: true,就能指定需要展示加载的路由:
const hideLoading = () => app.config.globalProperties.$Loading?.hideLoading;
const showLoading = () => app.config.globalProperties.$Loading?.showLoading();
// 路由前置拦截,展示加载
router.beforeEach((to, from, next) => {
if (to.meta.loading) showLoading();
next();
});
// 路由后置拦截,隐藏加载
router.afterEach((to) => {
if (to.meta.loading) hideLoading()(400);
});
🔹 请求小加载:接口请求专用,带进度条
在 axios 请求拦截器中配置,实现所有接口加载效果自动管理,还能监听下载进度并实时更新,用户能清晰看到请求进度:
const hideLoading = () => app.config.globalProperties.$smallLoading.hideLoading;
const showLoading = () => app.config.globalProperties.$smallLoading.showLoading();
let onProgress = () => app.config.globalProperties.$smallLoading.onProgress;
// 请求拦截器,发送请求时展示加载
service.interceptors.request.use(
(config) => {
showLoading();
// 监听下载进度,更新加载进度
config.onDownloadProgress = (progressEvent) => {
let percentCompleted = Math.floor(
(progressEvent.loaded * 100) / progressEvent?.total
);
onProgress()(percentCompleted);
};
return config;
},
(error) => {
hideLoading()();
returnPromise.reject(error);
}
);
// 响应拦截器,请求完成后隐藏加载
service.interceptors.response.use(
(response) => {
hideLoading()();
return response.data;
},
(error) => hideLoading()()
);
🎨 高级定制自由,打造专属加载效果
如果基础加载效果无法满足项目 UI 要求,插件提供了灵活的定制配置,所有配置均在注册时通过配置对象传入,操作简单,轻松打造专属加载效果!
指定固定加载类型
插件默认随机展示七种效果,通过loadingType属性指定 1-7 的数字,即可锁定固定加载动画:
app.use(Loading, {
loadingType: 2// 固定使用第二种加载效果
});
自定义色彩样式,匹配品牌风格
通过customized属性实现色彩定制,不同加载类型对应不同定制属性,遮罩层可单独调透明度,适配不同页面背景,多种色彩格式都支持:
// 类型1定制:多区域分别设置色彩
app.use(Loading, {
loadingType: 1,
customized: {top: "#54038a",left: "#05b631",right: "#eeaff7"},
});
// 类型2定制:统一设置加载色和遮罩色
app.use(Loading, {
loadingType: 2,
customized: { color: "red", mask: "green" },
});
// 类型3定制:仅修改遮罩层透明度
app.use(Loading, {
loadingType: 3,
customized: { mask: "rgba(126, 128, 117, 0.5)" },
});
注:4-7 类型也有专属定制属性,比如类型 4 可分别设置小球、圆点、进度条色彩,类型 5-7 可直接用color设置主色,具体可参考官方文档。
📝 TypeScript 无缝适配,类型安全不踩坑
对于使用 TS 的 Vue3 项目,不用怕类型提示问题!只需在global.d.ts文件中添加一行模块声明,就能完美解决,保证开发的类型安全:
declare module"vue3-loading-plug";
⚠️ 避坑指南,这些细节要注意
插件虽好用,但有一个技术细节需要留意:其实现依赖动态导入和Map特性,因此要求项目运行环境支持这两个特性。
如果项目的目标环境是低版本浏览器等不支持的环境,需要提前引入对应的 polyfill 做兼容处理,避免插件无法正常运行。
✨ 总结
vue3-loading-plug 绝对是 Vue3 项目加载动画的优选方案,专为 Vue3 量身打造,轻量化、零门槛、高定制:✅ 一行安装,三步集成,开箱即用;✅ 双加载类型,适配路由 / 接口所有场景;✅ 七种动画 + 全维度色彩定制,颜值拉满;✅ 动态导入 + Map 优化,性能不打折;✅ TS 无缝适配,全局配置减少重复代码。
有了这款插件,再也不用花费大量时间封装自定义加载组件,直接集成就能实现高颜值、高适配的加载效果,大幅提升开发效率!想要看更详细的配置细节和效果演示,直接戳官方文档探索吧~
快去试试这款神仙插件,告别繁琐的加载封装,让开发更轻松💻!
夜雨聆风