跳到主要内容

工具包

工具包提供常用的工具函数和实用程序,简化开发流程,提高开发效率。

功能分类

数据处理

  • 数据格式化
  • 数据验证
  • 数据转换
  • 数据计算

字符串处理

  • 字符串格式化
  • 正则表达式
  • 编码解码
  • 本地化

日期时间

  • 日期格式化
  • 时间计算
  • 时区处理
  • 日历功能

存储管理

  • 本地存储
  • 会话存储
  • Cookie 管理
  • 缓存管理

网络工具

  • URL 处理
  • 请求工具
  • 文件处理
  • 下载工具

开发指南

安装使用

# 在应用中安装
pnpm add @jingyun/utils

# 在组件中使用
import { formatDate, validateEmail } from '@jingyun/utils'

按需引入

// 按需引入
import { formatDate } from '@jingyun/utils/date'
import { validateEmail } from '@jingyun/utils/validate'

项目结构

packages/utils/
├── src/
│ ├── date/ # 日期工具
│ ├── string/ # 字符串工具
│ ├── number/ # 数字工具
│ ├── array/ # 数组工具
│ ├── object/ # 对象工具
│ ├── storage/ # 存储工具
│ ├── network/ # 网络工具
│ ├── validate/ # 验证工具
│ ├── format/ # 格式化工具
│ └── index.ts # 入口文件
├── tests/ # 测试文件
└── package.json # 包配置

API 文档

日期工具

  • formatDate(): 格式化日期
  • parseDate(): 解析日期
  • addDays(): 添加天数
  • diffDays(): 计算天数差
  • isLeapYear(): 判断闰年

字符串工具

  • capitalize(): 首字母大写
  • camelCase(): 驼峰命名
  • kebabCase(): 短横线命名
  • snakeCase(): 下划线命名
  • truncate(): 截断字符串

数字工具

  • formatNumber(): 格式化数字
  • toFixed(): 保留小数
  • isNumber(): 判断数字
  • randomInt(): 随机整数
  • range(): 数字范围

数组工具

  • unique(): 去重
  • chunk(): 分块
  • flatten(): 扁平化
  • shuffle(): 打乱顺序
  • groupBy(): 分组

对象工具

  • deepClone(): 深拷贝
  • deepMerge(): 深度合并
  • pick(): 选择属性
  • omit(): 排除属性
  • isEmpty(): 判断空对象

存储工具

  • setStorage(): 设置存储
  • getStorage(): 获取存储
  • removeStorage(): 删除存储
  • clearStorage(): 清空存储
  • hasStorage(): 检查存储

验证工具

  • validateEmail(): 验证邮箱
  • validatePhone(): 验证手机号
  • validateIDCard(): 验证身份证
  • validateURL(): 验证URL
  • validatePassword(): 验证密码

使用示例

日期格式化

import { formatDate } from '@jingyun/utils/date'

const date = new Date()
const formatted = formatDate(date, 'YYYY-MM-DD HH:mm:ss')
console.log(formatted) // 2024-01-01 12:00:00

字符串处理

import { camelCase, kebabCase } from '@jingyun/utils/string'

const camel = camelCase('hello-world')
console.log(camel) // helloWorld

const kebab = kebabCase('helloWorld')
console.log(kebab) // hello-world

数据验证

import { validateEmail, validatePhone } from '@jingyun/utils/validate'

const isEmail = validateEmail('test@example.com')
console.log(isEmail) // true

const isPhone = validatePhone('13800138000')
console.log(isPhone) // true

开发规范

函数设计

  • 纯函数优先
  • 不可变数据
  • 类型安全
  • 错误处理

性能优化

  • 避免重复计算
  • 使用缓存
  • 懒加载
  • 防抖节流

测试策略

  • 单元测试
  • 边界测试
  • 性能测试
  • 兼容性测试

更新日志

v1.0.0

  • 初始版本发布
  • 基础工具函数
  • TypeScript 支持
  • 完整的文档

v1.1.0

  • 新增日期工具
  • 优化性能
  • 修复 bug
  • 更新文档