feat: update
This commit is contained in:
@@ -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) => {
|
||||
---
|
||||
|
||||
**提示**:所有库都已安装并配置好,可以直接在项目中使用!🎉
|
||||
|
||||
|
||||
Reference in New Issue
Block a user