zdl
|
77440f78a7
|
refactor(HomeNavbar): Phase 3 - 提取用户菜单组件
**背景**
继 Phase 1 (静态组件) 和 Phase 2 (Redux订阅) 后,进一步优化 HomeNavbar
**重构内容**
1. **新增组件目录** `src/components/Navbars/components/UserMenu/`
- UserAvatar.js (101行) - 头像 + 皇冠图标 + 订阅边框
- DesktopUserMenu.js (93行) - 桌面版 Tooltip + 订阅弹窗
- TabletUserMenu.js (166行) - 平板版下拉菜单 (含所有功能)
- index.js - 统一导出
2. **HomeNavbar.js 优化**
- 删除 ~150 行用户菜单 JSX 代码
- 移除未使用的 Tooltip 导入
- 替换为 DesktopUserMenu / TabletUserMenu 组件调用
- 1533 → 1394 行 (-139行, -9%)
**技术亮点**
- React.memo 优化渲染性能
- 复用 Redux subscriptionSlice (Phase 2)
- 响应式设计 (isDesktop vs isTablet)
- 组件内聚,降低父组件耦合
**累计成果** (Phase 1-3)
- 原始: 1623 行
- 当前: 1394 行
- 减少: 229 行 (-14%)
- 提取: 7 个组件 (4 静态 + 3 用户菜单)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 17:01:01 +08:00 |
|
zdl
|
e5205ce097
|
refactor(subscription): Phase 2 - 迁移到 Redux 状态管理
重构目标: 使用 Redux 管理订阅数据,替代本地状态
Phase 2 完成:
✅ 创建 subscriptionSlice.js (143行)
- Redux Toolkit createSlice + createAsyncThunk
- 管理订阅信息、loading、error、Modal 状态
- fetchSubscriptionInfo 异步 thunk
- resetToFree reducer (登出时调用)
✅ 注册到 Redux Store
- 添加 subscriptionReducer 到 store
✅ 重构 useSubscription Hook (182行)
- 从本地状态迁移到 Redux (useSelector + useDispatch)
- 保留所有权限检查逻辑
- 新增: isSubscriptionModalOpen, open/closeSubscriptionModal
- 自动加载订阅数据 (登录时)
✅ 重构 HomeNavbar 使用 Redux
- 替换 useSubscriptionData → useSubscription
- 删除 ./hooks/useSubscriptionData.js
架构优势:
✅ 全局状态共享 - 多组件可访问订阅数据
✅ Redux DevTools 可调试
✅ 异步逻辑统一管理 (createAsyncThunk)
✅ 与现有架构一致 (authModalSlice 等)
性能优化:
✅ Redux 状态优化,减少不必要渲染
✅ useSelector 精确订阅,只在相关数据变化时更新
累计优化:
- 原始: 1623行
- Phase 1后: 1573行 (↓ 50行)
- Phase 2后: 1533行 (↓ 90行, -5.5%)
- 新增 Redux 逻辑: subscriptionSlice (143行) + Hook (182行)
下一步: Phase 3+ 继续拆分组件
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 16:50:10 +08:00 |
|
zdl
|
5387b2d032
|
refactor(HomeNavbar): Phase 1 - 提取静态组件 (1623行→1573行)
重构目标: 减少 HomeNavbar 不必要的重新渲染
Phase 1 完成:
✅ 提取 BrandLogo.js (51行) - Logo 和品牌文字
✅ 提取 LoginButton.js (37行) - 登录/注册按钮
✅ 提取 CalendarButton.js (65行) - 投资日历按钮+Modal
✅ 提取 ThemeToggleButton.js (33行) - 主题切换按钮
优化成果:
- HomeNavbar.js: 1623行 → 1573行 (↓ 50行, -3%)
- 4个独立组件使用 React.memo 包裹
- 组件状态内部管理,不影响父组件
- CalendarModal 状态从主组件移除
性能收益:
- 这些组件现在独立渲染,不受父组件影响
- 为后续 Phase 2-6 优化奠定基础
目录结构:
src/components/Navbars/
├── HomeNavbar.js (1573行)
└── components/
├── BrandLogo.js
├── LoginButton.js
├── CalendarButton.js
└── ThemeToggleButton.js
下一步: Phase 2 - 提取订阅相关组件
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 16:40:48 +08:00 |
|
zdl
|
fe5362c4bd
|
perf(HomeNavbar): 减少渲染日志噪音
问题:
- HomeNavbar 每次渲染都输出 debug 日志
- 通知系统变化导致频繁渲染(每7-8秒一次)
- 日志输出影响控制台可读性
临时方案:
- 注释掉渲染状态 debug 日志
- 创建 ThemeToggleButton 独立组件(为future优化准备)
后续优化:
- TODO: 完整拆分 HomeNavbar 为多个子组件
- TODO: 使用 React.memo 减少不必要渲染
- TODO: 优化 Context 订阅策略
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 16:33:32 +08:00 |
|
zdl
|
d5881462d2
|
feat: 将 AuthModalProvider 迁移到 Redux
## 主要改动
### 新增
- 创建 `store/slices/authModalSlice.js` - Redux Slice 管理认证弹窗状态
- 创建 `hooks/useAuthModal.js` - 自定义 Hook,组合 Redux 状态和业务逻辑
### 修改
- 更新 `store/index.js` - 添加 authModal reducer
- 更新 `App.js` - 移除 AuthModalProvider 包裹层
- 更新 5 个组件的 import 路径:
- AuthFormContent.js
- AuthModalManager.js
- WechatRegister.js
- HomeNavbar.js
- ProtectedRoute.js
### 删除
- 删除 `contexts/AuthModalContext.js` - 旧的 Context 实现
## 迁移效果
- ✅ 减少 Provider 嵌套层级(4层 → 3层)
- ✅ 统一状态管理架构(Redux)
- ✅ 更好的调试体验(Redux DevTools)
- ✅ 保持 API 兼容性(无破坏性修改)
## 技术细节
- 使用 `useRef` 存储 `onSuccessCallback`(函数不可序列化)
- 保持与 AuthContext 的依赖关系(AuthProvider 暂未迁移)
- 所有业务逻辑保持不变,仅改变状态管理方式
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 13:22:45 +08:00 |
|
zdl
|
3acc00ac8d
|
fix: 修复导航栏 Max 会员订阅信息显示问题
- 修复 HomeNavbar 中 useEffect 执行顺序导致订阅信息不加载的问题
- 移除 ref 检查逻辑,改为直接根据登录状态加载订阅信息
- 增强订阅相关的调试日志输出(getCurrentUser, API handler, HomeNavbar)
- 优化用户数据获取的日志格式,便于问题排查
|
2025-10-30 13:09:41 +08:00 |
|
zdl
|
173b13bc70
|
feat: 集成导航上报
|
2025-10-29 12:52:34 +08:00 |
|
zdl
|
e91656d332
|
feat: user 依赖优化
|
2025-10-24 12:19:37 +08:00 |
|
zdl
|
34a6c402c4
|
feat: homeNavar 将投资日历从社区页面的右侧导航移到了顶部导航栏
InvestmentCalendar.js 将 loadEventCounts 函数改为使用 useCallback 包装
- 修复了 useEffect 的依赖数组,添加了 loadEventCounts
- 为事件列表 Modal 添加了 zIndex={1500}
- 为内容详情 Drawer 添加了 zIndex={1500}
- 为相关股票 Modal 添加了 zIndex={1500}
src/views/Community/components/RightSidebar.js
修改内容:
- 已删除此文件
|
2025-10-24 10:56:43 +08:00 |
|
zdl
|
45b88309b3
|
pref: 代码优化
|
2025-10-23 15:03:39 +08:00 |
|
zdl
|
28975f74e9
|
feat: 将新闻中心改为事件中心
|
2025-10-23 14:57:26 +08:00 |
|
zdl
|
98653f042b
|
feat: 导航UI调整
|
2025-10-21 15:43:35 +08:00 |
|
zdl
|
eef383f56f
|
feat: 导航UI调整
|
2025-10-21 15:24:23 +08:00 |
|
zdl
|
6c96299b8f
|
feat: 添加合规
|
2025-10-20 21:25:33 +08:00 |
|
zdl
|
d695f8ff7b
|
feat: 登陆状态调整
|
2025-10-20 13:58:07 +08:00 |
|
zdl
|
b2681231b0
|
feat: 删除无用组件
|
2025-10-20 13:34:19 +08:00 |
|
zdl
|
44f9fea624
|
feat: 添加导航徽章
|
2025-10-20 13:28:37 +08:00 |
|
zdl
|
a7695c7365
|
feat: 日志优化
|
2025-10-18 12:26:08 +08:00 |
|
zdl
|
bae4d25e24
|
feat: 路由改造
|
2025-10-17 18:59:00 +08:00 |
|
zdl
|
02bf1ea709
|
feat: 添加二级导航,解决二级导航的展示问题
|
2025-10-17 16:48:32 +08:00 |
|
zdl
|
2d9d047a9f
|
feat: 添加mock数据,给导航添加选中标识
|
2025-10-17 15:01:35 +08:00 |
|
zdl
|
42acc8fac0
|
feat: 添加导航激活状态检测功能
- 使用 React Router 的 useLocation 钩子检测当前路径
- 为顶级导航菜单添加激活状态样式(蓝色背景 + 底部边框)
- 为下拉菜单项添加激活状态样式(蓝色背景 + 左侧边框)
- 支持桌面端和移动端抽屉菜单
- 解决用户无法感知当前导航位置的 UX 问题
激活路由映射:
- 高频跟踪: /community, /concepts
- 行情复盘: /limit-analyse, /stocks
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-16 17:50:07 +08:00 |
|
zdl
|
0e638e21c1
|
feat: 微信登陆提示调整
|
2025-10-16 15:35:33 +08:00 |
|
zdl
|
45f8f527ff
|
Merge branch 'main' into feature
|
2025-10-15 21:02:30 +08:00 |
|
zdl
|
1e47ac0cd7
|
feat: 解决导航跳转失效的问题
|
2025-10-15 13:44:23 +08:00 |
|
zdl
|
4e9acd12c2
|
feat: 登陆注册UI调整,用户协议和隐私政策跳转调整
|
2025-10-15 11:03:00 +08:00 |
|
zdl
|
fae8ef10b1
|
feat: 优化构建速度和包大小
|
2025-10-13 16:01:17 +08:00 |
|
zdl
|
1f5c95518e
|
bugfix: 解决导航跳转失效的问题
|
2025-10-11 17:52:27 +08:00 |
|
zdl
|
da38f2b6a9
|
feat: 解决导航跳转失效的问题
|
2025-10-11 17:50:57 +08:00 |
|
zdl
|
495ad758ea
|
feat: 10.10线上最新代码提交
|
2025-10-11 16:16:02 +08:00 |
|
|
|
4d0dc109bc
|
updated
|
2025-10-11 12:10:00 +08:00 |
|
|
|
8107dee8d3
|
Initial commit
|
2025-10-11 12:02:01 +08:00 |
|