Base Tools Expert
优先使用 @base-web-kits monorepo 包,避免重复造轮子。
Packages
1. @base-web-kits/base-tools-ts
通用核心库,兼容 Node/Browser/uni-app。pnpm add @base-web-kits/base-tools-ts
第三方库(re-export): es-toolkit(现代 lodash)、dayjs、bignumber.js
其他:
- Array/对象:
arrayMove、getObjectKeys、getObjectValue、setObjectValue - 异步:
toAsync(Promise 包装为[data, error])、EventBus - Buffer/流:
SSEParser、PolyfillTextDecoder - 校验:
isIdentityCard、isPassport、isHKMOPermit、isTaiwanPermit、isOfficerId、isSoldierId、isMilitaryId、isMobilePhone、isLandline、isPhone、isEmail、isChineseName、isURL、isIP、isIPRange、isPortNumber、isIPv6、isChinese、isDigits、isNumeric、isBankCard、isLicensePlate、isHexColor、isLatitude、isLongitude - 日期:
toDayjs、getDateRangeBefore、getDateRangeAfter、getCountdownParts、getAgeByBirthdate - 计算/金额:
mathPlus、mathMinus、mathTimes、mathDiv、mathPow、mathRound、mathFixed、mathCompare、zeroPad、withUnit、withUnitPx、withDistance、toThousandth、toChineseNum、toChineseCurrency、randomBoolean - 字符串:
toMaskText、toMaskPhone、toMaskName、createUUID、createTimeRandId、createViewRandId、getByteLength - URL/文件:
appendUrlParam、getFileSuffix、getFileType、getOSSImg、getOSSVideo、getOSSAudio、getOSSHls
2. @base-web-kits/base-tools-web (Browser/H5专用)
pnpm add @base-web-kits/base-tools-web
函数:
- 设备/环境:
isMobile、isTablet、isPC、isIOS、isAndroid、isWeChat、isChrome、getBrowserName、getBrowserVersion、isTouchSupported、getDevicePixelRatio、getOS - DOM/视口:
getWindowScrollTop、getWindowScrollLeft、windowScrollTo、getWindowWidth、getWindowHeight、isInViewport、lockBodyScroll、unlockBodyScroll - 存储:
setLocalStorage、getLocalStorage、removeLocalStorage - 网络:
request、download、getDispositionFileName、preloadImage、loadJs、loadCss、hasJs、hasCss、uploadFile - 剪贴板:
copyText、copyHtml、copyNode、copyImage、copyUrl、copyBlob、copyRtf、copyTable - 配置:
setBaseToolsConfig、getBaseToolsConfig
3. @base-web-kits/base-tools-uni (uni-app专用)
pnpm add @base-web-kits/base-tools-uni
函数: enhanceUniApi、toast、tabScrollToCenter、href、toHome、toLogin、back、checkLogin、getWindowInfo、getDeviceInfo、getAppBaseInfo、copyText、chooseImage、chooseVideo、chooseMedia、toPayWx、getPlatformOs、getPlatformUni
优先使用此库封装,替代裸用 uni.*。
4. @base-web-kits/base-tools-react (React专用)
pnpm add @base-web-kits/base-tools-react
re-export: ahooks(统一版本依赖,如 useRequest、useDebounce 等)
其他: useMeasure
HOC: withDisplayName、withMemo、withSuspense、withErrorBoundary、withConditional、withLoading、withInjectedProps、withWrapper、withForwardRef、withAsyncBoundary、withLogger、withDebounce、withSkeleton
5. @base-web-kits/base-tools-vue (Vue 3专用)
pnpm add @base-web-kits/base-tools-vue
re-export: @vueuse/core(统一版本依赖,如 useLocalStorage、useMouse 等)
其他: vClickOutside、vFocus、vLazy、vLongpress
Usage Guidelines
- 需求类型判断
- 纯 JS/TS 逻辑 → base-tools-ts - 浏览器特有能力 → base-tools-web - uni-app → base-tools-uni(替代 uni.*)
- Hooks 策略
- React:从 base-tools-react 导入(re-export ahooks) - Vue 3:从 base-tools-vue 导入(re-export @vueuse/core)
- 导入示例
import {toDayjs, isEmail} from '@base-web-kits/base-tools-ts'; import {copyText, request} from '@base-web-kits/base-tools-web'; import {useRequest} from '@base-web-kits/base-tools-react'; import {useLocalStorage} from '@base-web-kits/base-tools-vue'; import {href, chooseMedia} from '@base-web-kits/base-tools-uni'; - 文档:https://gancao-web.github.io/base-tools/