参考手册Workspace 包参考
utils 工具函数
通用工具函数库,提供 className 合并、URL 生成、用户名处理、手机号验证等功能
本页是 01MVP 模板的 Workspace 包参考,适合在需要查看导出、源码入口和扩展点时使用。若你正在按功能启用或改造模板,先看 核心概念。
这是什么
@01mvp/utils 是项目的常用工具函数集,封装了项目中高频使用的格式化、验证和辅助逻辑。
能做什么
- className 合并(
cn) -- 合并 Tailwind CSS 类名,自动处理冲突 - URL 生成 -- 获取应用基础 URL(开发/生产环境自适应)
- 用户名处理 -- 清理、验证、生成用户名
- 手机号处理 -- 多国手机号格式化、验证、标准化
- 常量配置 -- 城市列表、标签预设等
核心功能
className 合并(cn)
合并 Tailwind 类名,后面的值覆盖前面的冲突属性。支持条件类名。
import { cn } from "@01mvp/utils";
cn("px-2 py-1", "px-4"); // "py-1 px-4"
cn("rounded", isActive && "bg-blue-500"); // 条件类名URL 生成
import { getBaseUrl } from "@01mvp/utils";
getBaseUrl(); // 生产: "https://example.com" 开发: "http://localhost:7001"用户名处理
import { sanitizeUsername, isValidUsername, generateUsername } from "@01mvp/utils";
sanitizeUsername("John Doe!"); // "john_doe"
isValidUsername("john_doe"); // true(规则:2-20字符,字母/数字/下划线)
generateUsername("张三", existingNames); // 生成唯一用户名,处理冲突和保留名手机号处理
import { normalizePhoneNumber, formatPhoneNumberForDisplay, validatePhoneNumber } from "@01mvp/utils";
normalizePhoneNumber("13812345678"); // "+8613812345678"
formatPhoneNumberForDisplay("+8613812345678"); // "+86 138 1234 5678"
validatePhoneNumber("+86", "13800138000"); // { isValid: true }支持中国大陆、香港、澳门、台湾、美国、新加坡、英国、日本、韩国等国家/地区格式。
常量配置
import { CITIES, TAG_PRESETS } from "@01mvp/utils";
// CITIES: ["北京", "上海", "深圳", "广州", "杭州", "成都", ...]
// TAG_PRESETS.技术领域: ["AI", "Web3", "硬件", "独立开发", "设计", ...]最佳实践
- 存储标准化,显示格式化 -- 手机号存
+86138...,展示用+86 138... - 用
cn()合并类名 -- 避免自己写类名拼接逻辑 - 验证错误用返回结果中的提示信息 --
result.errorMessage和result.suggestion是面向用户的