From 745040d25431db5a0ef35d42b7823d218b051ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Thu, 14 Aug 2025 18:08:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(user):=20=E5=AE=9E=E7=8E=B0=20useUser=20Ho?= =?UTF-8?q?ok=20=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 useUser Hook 用于全局用户状态管理 - 更新 UserCard 和 UserCell 组件,集成 useUser 功能 - 添加 UserProfile 组件示例 - 更新 API 引用,统一使用 useUser --- docs/useUser-hook-guide.md | 277 +++++++++++++++++++++++++ src/api/cms/link/model/index.ts | 2 +- src/components/UserProfile.tsx | 99 +++++++++ src/hooks/useUser.ts | 237 +++++++++++++++++++++ src/pages/user/components/UserCard.tsx | 15 +- src/pages/user/components/UserCell.tsx | 67 ++++-- 6 files changed, 666 insertions(+), 31 deletions(-) create mode 100644 docs/useUser-hook-guide.md create mode 100644 src/components/UserProfile.tsx create mode 100644 src/hooks/useUser.ts diff --git a/docs/useUser-hook-guide.md b/docs/useUser-hook-guide.md new file mode 100644 index 0000000..b8cdbef --- /dev/null +++ b/docs/useUser-hook-guide.md @@ -0,0 +1,277 @@ +# useUser Hook 使用指南 + +## 概述 + +`useUser` hook 是一个用于管理用户状态的自定义 React Hook,类似于项目中的 `useCart` hook。它提供了用户登录状态管理、用户信息获取和更新、权限检查等功能,方便在整个应用中全局调用。 + +## 功能特性 + +- ✅ 用户登录状态管理 +- ✅ 用户信息本地存储和同步 +- ✅ 从服务器获取最新用户信息 +- ✅ 用户信息更新 +- ✅ 权限和角色检查 +- ✅ 实名认证状态检查 +- ✅ 用户余额和积分获取 +- ✅ 自动处理登录过期 + +## 基本用法 + +### 1. 导入 Hook + +```typescript +import { useUser } from '@/hooks/useUser'; +``` + +### 2. 在组件中使用 + +```typescript +const MyComponent = () => { + const { + user, // 用户信息 + isLoggedIn, // 是否已登录 + loading, // 加载状态 + loginUser, // 登录方法 + logoutUser, // 退出登录方法 + fetchUserInfo, // 获取用户信息 + updateUser, // 更新用户信息 + getDisplayName, // 获取显示名称 + isCertified, // 是否已实名认证 + getBalance, // 获取余额 + getPoints // 获取积分 + } = useUser(); + + // 使用用户信息 + if (loading) { + return
余额:¥{getBalance()}
+积分:{getPoints()}
+ {isCertified() && 已实名认证} +