feat: update

This commit is contained in:
2025-11-05 17:24:55 +08:00
parent 61252cdf36
commit ce324c9bb5
42 changed files with 2078 additions and 448 deletions

View File

@@ -5,25 +5,28 @@
## 📦 已安装的库列表
### 工具类库
| 库名 | 版本 | 用途 |
|------|------|------|
| **lodash-es** | ^4.17.21 | JavaScript 工具函数库ES modules 版本) |
| **dayjs** | ^1.11.19 | 轻量级日期处理库 |
| **axios** | ^1.13.1 | HTTP 请求库 |
| **zustand** | ^5.0.8 | 轻量级状态管理 |
| **react-hook-form** | ^7.66.0 | 表单处理库 |
| **zod** | ^4.1.12 | TypeScript 数据验证库 |
| 库名 | 版本 | 用途 |
| ------------------- | -------- | ---------------------------------------- |
| **lodash-es** | ^4.17.21 | JavaScript 工具函数库ES modules 版本) |
| **dayjs** | ^1.11.19 | 轻量级日期处理库 |
| **axios** | ^1.13.1 | HTTP 请求库 |
| **zustand** | ^5.0.8 | 轻量级状态管理 |
| **react-hook-form** | ^7.66.0 | 表单处理库 |
| **zod** | ^4.1.12 | TypeScript 数据验证库 |
### Expo 原生模块
| 库名 | 版本 | 用途 |
|------|------|------|
| **@react-native-async-storage/async-storage** | ^2.2.0 | 本地存储 |
| **expo-image** | ^3.0.10 | 优化的图片组件 |
| **expo-haptics** | ^15.0.7 | 触觉反馈 |
| 库名 | 版本 | 用途 |
| --------------------------------------------- | ------- | -------------- |
| **@react-native-async-storage/async-storage** | ^2.2.0 | 本地存储 |
| **expo-image** | ^3.0.10 | 优化的图片组件 |
| **expo-haptics** | ^15.0.7 | 触觉反馈 |
### 开发工具
| 库名 | 版本 | 用途 |
|------|------|------|
| 库名 | 版本 | 用途 |
| -------------------- | -------- | ----------------------------- |
| **@types/lodash-es** | ^4.17.12 | Lodash-ES TypeScript 类型定义 |
---
@@ -39,13 +42,13 @@
import { map, filter, uniq, pick, cloneDeep, debounce } from 'lodash-es';
// 数组操作
map([1, 2, 3], n => n * 2); // [2, 4, 6]
filter([1, 2, 3, 4], n => n % 2 === 0); // [2, 4]
uniq([1, 2, 2, 3]); // [1, 2, 3]
map([1, 2, 3], (n) => n * 2); // [2, 4, 6]
filter([1, 2, 3, 4], (n) => n % 2 === 0); // [2, 4]
uniq([1, 2, 2, 3]); // [1, 2, 3]
// 对象操作
pick({ a: 1, b: 2, c: 3 }, ['a', 'b']); // { a: 1, b: 2 }
cloneDeep(obj); // 深拷贝
pick({ a: 1, b: 2, c: 3 }, ['a', 'b']); // { a: 1, b: 2 }
cloneDeep(obj); // 深拷贝
// 防抖和节流
const handleSearch = debounce((text) => {
@@ -54,7 +57,7 @@ const handleSearch = debounce((text) => {
// 也可以全量导入(不推荐,会增加包体积)
import _ from 'lodash-es';
_.map([1, 2, 3], n => n * 2);
_.map([1, 2, 3], (n) => n * 2);
```
### 2. Day.js - 日期处理
@@ -71,12 +74,12 @@ dayjs.locale('zh-cn');
dayjs().format('YYYY-MM-DD HH:mm:ss');
// 相对时间
dayjs().fromNow(); // '几秒前'
dayjs().subtract(1, 'day').fromNow(); // '1天前'
dayjs().fromNow(); // '几秒前'
dayjs().subtract(1, 'day').fromNow(); // '1天前'
// 日期操作
dayjs().add(7, 'day'); // 7天后
dayjs().startOf('month'); // 本月第一天
dayjs().add(7, 'day'); // 7天后
dayjs().startOf('month'); // 本月第一天
```
### 3. Axios - HTTP 请求
@@ -329,7 +332,7 @@ export const formatRelativeTime = (date: Date | string | number) => {
export const formatChatTime = (timestamp: number) => {
const date = dayjs(timestamp);
const now = dayjs();
if (date.isSame(now, 'day')) {
return date.format('HH:mm');
} else if (date.isSame(now.subtract(1, 'day'), 'day')) {
@@ -384,4 +387,3 @@ export const formatChatTime = (timestamp: number) => {
---
**提示**:所有库都已安装并配置好,可以直接在项目中使用!🎉