zdl
|
17c04211bb
|
feat: 完善 PostHog 用户生命周期追踪 + 性能优化
新增功能:
1. 首次访问追踪 (first_visit)
- 记录用户来源(referrer、UTM参数)
- 记录落地页
- 使用 localStorage 永久标记
2. 首次登录追踪 (first_login)
- 区分首次登录和后续登录
- 按用户 ID 独立标记
- 用于计算新用户激活率
3. 登录/登出事件追踪
- 登录成功追踪 (user_logged_in)
- 登出事件追踪 (user_logged_out,必须在 resetUser 之前)
- 注册事件追踪 (user_registered)
4. 页面浏览时长追踪 (page_view_duration)
- 路由切换时自动计算停留时长
- 页面关闭时发送最终时长
- 过滤停留时间 < 1秒的快速跳转
性能优化:
1. 新增 trackEventAsync 函数
- 使用 requestIdleCallback 在浏览器空闲时发送非关键事件
- Safari 等旧浏览器降级到 setTimeout
- 超时保护(最多延迟 2秒)
2. 异步追踪非关键事件
- first_visit - 不阻塞首屏渲染
- page_view_duration - 不阻塞页面切换
3. 关键事件保持同步
- user_registered、user_logged_in、first_login、user_logged_out
- 确保数据准确性和完整性
分析能力提升:
- ✅ 营销渠道 ROI 分析(UTM 参数追踪)
- ✅ 新用户激活率分析(首次登录标记)
- ✅ 用户留存率分析(注册→首次登录→后续登录)
- ✅ 页面热度分析(停留时长统计)
- ✅ 流失用户识别(7天未登录,需后端支持)
|
2025-11-18 21:29:33 +08:00 |
|
zdl
|
02117c6852
|
refactor: 重构 App.js 使用 AppProviders 和 GlobalComponents
- 使用 useGlobalErrorHandler Hook 替代内联错误处理
- 使用 AppProviders 替代 6 层 Provider 嵌套
- 使用 GlobalComponents 替代分散的全局组件
- 简化 AppContent,只保留 PostHog 初始化和路由渲染
效果:
- App.js 从 165 行减少到 62 行 (-62%)
- 总计从原始 330 行减少到 62 行 (-81%)
- 代码结构清晰,职责分明
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 15:03:09 +08:00 |
|
zdl
|
4130498b8e
|
refactor: 重构 App.js 使用声明式路由配置
- 移除 140+ 行路由定义 JSX,改用 AppRoutes 组件
- 移除 10 个懒加载组件声明 (已迁移到 routes/lazy-components.js)
- 移除 ProtectedRoute/ProtectedRouteRedirect 导入 (路由系统内部处理)
- 简化 AppContent 组件,只保留核心逻辑
效果:
- App.js 从 330 行减少到 165 行 (-50%)
- 代码职责更清晰,易于维护
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 14:42:54 +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
|
c77061f36d
|
feat: 将 IndustryProvider (176行) 完整迁移到 Redux
|
2025-10-30 12:54:32 +08:00 |
|
zdl
|
fb76e442f7
|
feat: 从 React Context 迁移到 Redux,实现了:
1. ✅ 集中式状态管理 - PostHog 状态与应用状态统一管理
2. ✅ 自动追踪机制 - Middleware 自动拦截 Redux actions 进行追踪
3. ✅ Redux DevTools 支持 - 可视化调试所有 PostHog 事件
4. ✅ 离线事件缓存 - 网络恢复时自动刷新缓存事件
5. ✅ 性能优化 Hooks - 提供轻量级 Hook 避免不必要的重渲染
|
2025-10-28 20:51:10 +08:00 |
|
zdl
|
6506cb222b
|
feat: PostHog 集成\
1. ✅ 安装依赖: posthog-js@^1.280.1
2. ✅ 创建核心文件:
- src/lib/posthog.js - PostHog SDK 封装(271 行)
- src/lib/constants.js - 事件常量定义(AARRR 框架)
- src/hooks/usePostHog.js - PostHog React Hook
- src/hooks/usePageTracking.js - 页面追踪 Hook
- src/components/PostHogProvider.js - Provider 组件
3. ✅ 集成到应用:
- 修改 src/App.js,在最外层添加 <PostHogProvider>
- 自动追踪所有页面浏览
4. ✅ 配置环境变量:
- 在 .env 添加 PostHog 配置项
- REACT_APP_POSTHOG_KEY 留空,需要用户填写
5. ✅ 创建文档: POSTHOG_INTEGRATION.md 包含完整的使用说明
|
2025-10-28 20:09:21 +08:00 |
|
zdl
|
094793c022
|
feat: 热门关键词UI调整 数据获取逻辑调整 接入redux
|
2025-10-25 18:22:41 +08:00 |
|
zdl
|
9dcd4bfbf3
|
feat: 调整行业请求数据结构
|
2025-10-23 14:24:26 +08:00 |
|
zdl
|
43229a21c0
|
feat: 添加路由保护
|
2025-10-22 15:41:34 +08:00 |
|
zdl
|
433a982a20
|
feat: 成功和错误弹窗从顶部弹出
|
2025-10-22 12:18:53 +08:00 |
|
zdl
|
23188d5690
|
feat: 修改文件 │
│ │
│ 1. src/services/socketService.js - 指数退避 + 无限重试 │
│ 2. src/components/ConnectionStatusBar/index.js - UI 优化 + 自动消失 │
│ 3. src/App.js - handleClose 实现 + dismissed 状态管理 │
│ 4. src/contexts/NotificationContext.js - 添加成功状态检测 │
│ 5. NOTIFICATION_SYSTEM.md - v2.11.0 文档更新
|
2025-10-21 18:34:38 +08:00 |
|
zdl
|
09c9273190
|
feat: sockt 弹窗功能添加
|
2025-10-21 17:50:21 +08:00 |
|
zdl
|
5a3a3ad42b
|
feat: 添加消息推送能力,添加新闻催化分析页的合规提示
|
2025-10-21 10:59:52 +08:00 |
|
zdl
|
b2681231b0
|
feat: 删除无用组件
|
2025-10-20 13:34:19 +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
|
c88aafcc04
|
feat: 首页模拟盘去除登陆控制
|
2025-10-15 11:53:31 +08:00 |
|
zdl
|
4e9acd12c2
|
feat: 登陆注册UI调整,用户协议和隐私政策跳转调整
|
2025-10-15 11:03:00 +08:00 |
|
zdl
|
e0ca328e1c
|
feat: 调整注册逻辑
|
2025-10-14 16:02:33 +08:00 |
|
zdl
|
cd50d718fe
|
pref: 代码打包优化
|
2025-10-13 19:53:13 +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 |
|