更新记录
1.0.1(2026-06-01) 下载此版本
app-core-utils (UniApp 核心基础工具库)
app-core-utils 企业级 UniApp 项目的高度复用基础能力插件。它将日常开发中最常用的 UI、Router、Storage 进行了深度封装,解决了 UniApp 原生 API 在复杂业务场景下,如“重复路由跳转”、“跨端 UI 表现不一致”、“大数据页面传参”以及“本地存储极易被误删”等问题。
1.0.0(2026-06-01) 下载此版本
app-core-utils (UniApp 核心基础工具库)
app-core-utils 企业级 UniApp 项目的高度复用、与业务零耦合的基础能力插件。它将日常开发中最常用的 UI、Router、Storage 进行了深度封装,解决了 UniApp 原生 API 在复杂业务场景下的痛点,如“重复路由跳转”、“跨端 UI 表现不一致”、“大数据页面传参”以及“本地存储极易被误删”等问题。
平台兼容性
uni-app(5.11)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | 4.4 | 12 | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | × | √ |
app-core-utils (UniApp 核心基础工具库)
app-core-utils 企业级 UniApp 项目的高度复用基础能力插件。它将日常开发中最常用的 UI、Router、Storage 进行了深度封装,解决了 UniApp 原生 API 在复杂业务场景下,如“重复路由跳转”、“跨端 UI 表现不一致”、“大数据页面传参”以及“本地存储极易被误删”等问题。
🎯 核心特性
- 🚀 智能 Router:
- 防重拦截:内置智能防重逻辑,如全局检测并阻止对“登录页”等特殊页面的重复跳转。
- 超大数据传参:突破 URL 长度限制,内部自动将超大
data降级存入Storage并映射 ID,目标页自动解析。
- 📦 安全 Storage:
- 动态持久化前缀:内置缓存隔离。带有特定前缀的数据(如设备号等)在使用
storage.clear()时会被安全保留,防止误杀。 - 泛型支持:全面拥抱 TypeScript,支持传入泛型实现强类型取值。
- 动态持久化前缀:内置缓存隔离。带有特定前缀的数据(如设备号等)在使用
- 🎨 跨端增强 UI:
- 自动抹平跨端差异,在
App-Plus环境下甚至内置了基于plus.nativeObj.View的高性能原生圆角弹窗,并向下兼容 H5/微信小程序。
- 自动抹平跨端差异,在
📦 目录结构
uni_modules/
└── app-core-utils/
├── package.json
├── readme.md
└── js_sdk/
├── index.ts // 统一导出和初始化入口
├── config.ts // 默认全局配置
├── ui.ts // 跨端 UI 封装 (原生弹窗、Toast、Loading等)
├── router.ts // 增强版 Router
└── storage.ts // 增强版 Storage
🚀 快速开始
1. 引入与重导出 (推荐实践)
在你的项目中,为了方便全局调用,建议在项目的 utils/index.ts 中对其进行统一导出:
// @/utils/index.ts
import { ui, storage, router } from "@/uni_modules/app-core-utils/js_sdk";
export { ui, storage, router };
2. 覆盖默认配置 (可选)
插件内置了通用默认配置,如果你需要自定义参数(如自定义你的登录页路径或存储前缀),可以在 App.vue 或 main.ts 中调用 initYUtils 进行配置:
import { initYUtils } from "@/uni_modules/app-core-utils/js_sdk";
// 初始化并注入你项目的业务配置
initYUtils({
loginRoute: "pages/login/index", // 你的登录页路径 (用于防止 token 过期时重复跳转)
storagePrefix: "__PERSIST__", // 你自定义的持久化缓存前缀
});
📚 API 使用文档
1. UI 交互 (ui.ts)
import { ui } from "@/utils";
// 简单轻提示
ui.showToast("操作成功");
ui.showToast("操作失败", "error"); // 或者 'none', 'success'
// 显示加载中
ui.showLoading("加载中...");
ui.hideLoading();
// 唤起增强版模态框 (App 端为自定义圆角 NativeObj)
ui.showModal({
title: "温馨提示",
content: "确定要删除该项吗?",
confirmText: "删除",
confirmColor: "#FF4D4F",
}).then((res) => {
if (res.confirm) console.log("用户点击确定");
});
2. 路由 (router.ts)
import { router } from "@/utils";
// 基础跳转 (自动格式化路径,自动带入普通查询参数)
router.push("/pages/home/detail", { id: 123 });
// 替换当前页
router.replace("/pages/home/index");
// 路由重启 (内置自动阻止冗余跳转到登录页)
router.reLaunch("/pages/sys/login/index");
// 🌟 高级特性:超大对象数据传参 (通过 Storage 中转避开 URL 长度限制)
router.pushWithData("/pages/home/detail", {
hugeArray: [...Array(10000).keys()],
complexObject: { a: 1, b: 2 },
});
// 在目标页面取值:
const data = router.getNavData();
// 如果传了 clear=true,获取后会自动销毁中转缓存
3. 本地存储 (storage.ts)
import { storage } from "@/utils";
// 基础读写 (支持泛型)
storage.set("userInfo", { name: "Admin" });
const user = storage.get<{ name: string }>("userInfo");
// 🌟 高级特性:持久化写入 (第三个参数 true)
// 此数据会被自动追加 storagePrefix 前缀
storage.set("deviceCode", "ABC-1234", true);
// 取值时,无需关心前缀,底层自动向后兼容查找
const deviceCode = storage.get("deviceCode");
// 清理缓存(安全模式)
// 此时只会清空普通的缓存(如 userInfo),上面设置为 true 的 deviceCode 会被保留!
storage.clear();

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 1307
赞赏 0
下载 12116321
赞赏 1918
赞赏
京公网安备:11010802035340号