当前状态: {browserPermission}
+ +
+连接状态: {isConnected ? '已连接' : '未连接'}
+ + + + + + +{JSON.stringify(posthog, null, 2)}
+ );
+}
+```
+
+### 3. 控制台日志
+
+开发环境下会自动输出日志:
+
+```
+[PostHog Middleware] 自动追踪事件: User Logged In { user_id: 123 }
+[PostHog] 📍 Event tracked: News Article Clicked
+```
+
+---
+
+## 📊 State 结构
+
+```javascript
+{
+ posthog: {
+ // 初始化状态
+ isInitialized: true,
+ initError: null,
+
+ // 用户信息
+ user: {
+ userId: "123",
+ email: "user@example.com",
+ subscription_tier: "pro"
+ },
+
+ // 事件队列(离线缓存)
+ eventQueue: [
+ { eventName: "...", properties: {...}, timestamp: "..." }
+ ],
+
+ // Feature Flags
+ featureFlags: {
+ new_dashboard_design: true,
+ beta_feature: false
+ },
+
+ // 配置
+ config: {
+ apiKey: "phc_...",
+ apiHost: "https://app.posthog.com",
+ sessionRecording: false
+ },
+
+ // 统计
+ stats: {
+ totalEvents: 150,
+ lastEventTime: "2025-10-28T12:00:00Z"
+ }
+ }
+}
+```
+
+---
+
+## 🚀 高级功能
+
+### 1. 手动触发页面浏览
+
+```jsx
+import { trackModalView, trackTabChange } from 'store/middleware/posthogMiddleware';
+
+// Modal 打开时
+dispatch(trackModalView('User Settings Modal', { source: 'nav_bar' }));
+
+// Tab 切换时
+dispatch(trackTabChange('Related Stocks', { from_tab: 'Overview' }));
+```
+
+### 2. 刷新离线事件
+
+```jsx
+import { flushCachedEvents } from 'store/slices/posthogSlice';
+
+// 网络恢复时自动触发,也可以手动触发
+dispatch(flushCachedEvents());
+```
+
+### 3. 性能追踪
+
+给 action 添加时间戳:
+
+```jsx
+import { withTiming } from 'store/middleware/posthogMiddleware';
+
+// 追踪耗时操作
+dispatch(withTiming(fetchBigData()));
+// → 如果超过 1 秒,会自动追踪性能事件
+```
+
+---
+
+## ⚠️ 注意事项
+
+### 1. **环境变量**
+
+确保 `.env` 文件中配置了 PostHog API Key:
+
+```bash
+REACT_APP_POSTHOG_KEY=phc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+REACT_APP_POSTHOG_HOST=https://app.posthog.com
+REACT_APP_ENABLE_SESSION_RECORDING=false
+```
+
+### 2. **Redux Middleware 顺序**
+
+PostHog Middleware 应该在其他 middleware 之后:
+
+```javascript
+.concat(otherMiddleware)
+.concat(posthogMiddleware) // ✅ 最后添加
+```
+
+### 3. **避免循环依赖**
+
+不要在 Middleware 中 dispatch 会触发 Middleware 的 action。
+
+### 4. **序列化检查**
+
+已经在 store 配置中忽略了 PostHog actions 的序列化检查。
+
+---
+
+## 🔄 从旧版本迁移
+
+如果你的代码中使用了旧的 `usePostHog` Hook:
+
+```jsx
+// 旧代码
+import { usePostHog } from 'hooks/usePostHog';
+const { track } = usePostHog();
+
+// 新代码(推荐)
+import { usePostHogRedux } from 'hooks/usePostHogRedux';
+const { track } = usePostHogRedux();
+```
+
+**兼容性**: 旧的 `usePostHog` Hook 仍然可用,但推荐迁移到 Redux 版本。
+
+---
+
+## 📚 参考资料
+
+- [PostHog 官方文档](https://posthog.com/docs)
+- [Redux Toolkit 文档](https://redux-toolkit.js.org/)
+- [Redux Middleware 文档](https://redux.js.org/tutorials/fundamentals/part-4-store#middleware)
+- [AARRR 框架](https://www.productplan.com/glossary/aarrr-framework/)
+
+---
+
+## 🎉 总结
+
+PostHog 已成功集成到 Redux!主要优势:
+
+1. ✅ **自动追踪**: Middleware 自动拦截 actions
+2. ✅ **集中管理**: 统一的 Redux 状态管理
+3. ✅ **调试友好**: Redux DevTools 支持
+4. ✅ **离线支持**: 自动缓存和刷新事件
+5. ✅ **性能优化**: 提供多个轻量级 Hooks
+
+现在你可以:
+1. 启动应用:`npm start`
+2. 打开 Redux DevTools 查看 PostHog 状态
+3. 执行操作(登录、浏览页面、点击按钮)
+4. 观察自动追踪的事件
+
+Have fun tracking! 🚀
diff --git a/docs/POSTHOG_TESTING_GUIDE.md b/docs/POSTHOG_TESTING_GUIDE.md
new file mode 100644
index 00000000..500e2cb1
--- /dev/null
+++ b/docs/POSTHOG_TESTING_GUIDE.md
@@ -0,0 +1,476 @@
+# PostHog 本地上报能力测试指南
+
+本文档指导您完成 PostHog 事件追踪功能的完整测试。
+
+---
+
+## 📋 准备工作
+
+### 步骤 1:获取 PostHog API Key
+
+#### 1.1 登录 PostHog
+
+打开浏览器,访问:
+```
+https://app.posthog.com
+```
+
+使用您的账号登录。
+
+#### 1.2 创建测试项目(如果还没有)
+
+1. 点击页面左上角的项目切换器
+2. 点击 "+ Create Project"
+3. 填写项目信息:
+ - **Project name**: `vf_react_dev`(推荐)或自定义名称
+ - **Organization**: 选择您的组织
+4. 点击 "Create Project"
+
+#### 1.3 获取 API Key
+
+1. 进入项目设置:
+ - 点击左侧边栏底部的 **"Settings"** ⚙️
+ - 选择 **"Project"** 标签
+
+2. 找到 "Project API Key" 部分
+ - 您会看到一个以 `phc_` 开头的长字符串
+ - 例如:`phc_abcdefghijklmnopqrstuvwxyz1234567890`
+
+3. 复制 API Key
+ - 点击 API Key 右侧的复制按钮 📋
+ - 或手动选中并复制
+
+---
+
+## 🔧 配置本地环境
+
+### 步骤 2:配置 .env.local
+
+打开项目根目录的 `.env.local` 文件,找到以下行:
+
+```env
+REACT_APP_POSTHOG_KEY=
+```
+
+将您刚才复制的 API Key 粘贴进去:
+
+```env
+REACT_APP_POSTHOG_KEY=phc_your_actual_key_here
+```
+
+**完整示例:**
+```env
+# PostHog 配置(本地开发)
+REACT_APP_POSTHOG_KEY=phc_abcdefghijklmnopqrstuvwxyz1234567890
+REACT_APP_POSTHOG_HOST=https://app.posthog.com
+REACT_APP_ENABLE_SESSION_RECORDING=false
+```
+
+⚠️ **重要**:保存文件后必须重启应用才能生效!
+
+---
+
+## 🚀 启动应用
+
+### 步骤 3:重启开发服务器
+
+如果应用正在运行,先停止它:
+
+```bash
+# 方式 1:使用命令
+npm run kill-port
+
+# 方式 2:在终端按 Ctrl+C
+```
+
+然后重新启动:
+
+```bash
+npm start
+```
+
+### 步骤 4:验证初始化
+
+应用启动后,打开浏览器:
+
+```
+http://localhost:3000
+```
+
+**立即按 F12 打开浏览器控制台**,您应该看到以下日志:
+
+```javascript
+✅ PostHog initialized successfully
+📊 PostHog Analytics initialized
+👤 User identified: user_xxx (如果已登录)
+```
+
+✅ **如果看到以上日志,说明 PostHog 初始化成功!**
+
+---
+
+## 🧪 测试事件追踪
+
+### 测试 1:页面浏览事件
+
+#### 操作步骤:
+1. 访问首页:http://localhost:3000
+2. 导航到社区页面:点击导航栏 "社区"
+3. 导航到个股中心:点击导航栏 "个股中心"
+4. 导航到概念中心:点击导航栏 "概念中心"
+5. 导航到涨停分析:点击导航栏 "涨停分析"
+
+#### 期待结果:
+
+**控制台输出:**
+```javascript
+[PostHog] Event: $pageview
+ Properties: {
+ $current_url: "http://localhost:3000/community",
+ page_path: "/community",
+ page_type: "feature",
+ feature_name: "community"
+ }
+```
+
+**验证方法:**
+1. 打开 PostHog Dashboard
+2. 进入 **"Activity" → "Live Events"**
+3. 观察实时事件流(延迟 1-2 秒)
+4. 应该看到 `$pageview` 事件,每次页面切换一个
+
+---
+
+### 测试 2:社区页面交互事件
+
+#### 操作步骤:
+
+1. **搜索功能**
+ - 点击搜索框
+ - 输入 "科技"
+ - 按回车搜索
+
+2. **筛选功能**
+ - 点击 "筛选" 按钮
+ - 选择某个筛选条件
+ - 应用筛选
+
+3. **内容交互**
+ - 点击任意帖子卡片
+ - 点击用户头像
+
+#### 期待结果:
+
+**控制台输出:**
+```javascript
+📍 Event tracked: search_initiated
+ context: "community"
+
+📍 Event tracked: search_query_submitted
+ query: "科技"
+ category: "community"
+
+📍 Event tracked: filter_applied
+ filter_type: "category"
+ filter_value: "tech"
+
+📍 Event tracked: post_clicked
+ post_id: "123"
+ post_title: "标题"
+```
+
+**PostHog Live Events:**
+```
+🔴 search_initiated
+🔴 search_query_submitted
+🔴 filter_applied
+🔴 post_clicked
+```
+
+---
+
+### 测试 3:个股中心交互事件
+
+#### 操作步骤:
+
+1. **搜索股票**
+ - 进入个股中心页面
+ - 点击搜索框
+ - 输入股票名称或代码
+
+2. **概念交互**
+ - 点击某个概念板块
+ - 点击概念下的股票
+
+3. **热力图交互**
+ - 点击热力图中的股票方块
+ - 查看股票详情
+
+#### 期待结果:
+
+**控制台输出:**
+```javascript
+📍 Event tracked: stock_overview_page_viewed
+
+📍 Event tracked: stock_searched
+ query: "科技股"
+
+📍 Event tracked: concept_clicked
+ concept_name: "人工智能"
+
+📍 Event tracked: concept_stock_clicked
+ stock_code: "000001"
+ stock_name: "平安银行"
+```
+
+---
+
+### 测试 4:概念中心交互事件
+
+#### 操作步骤:
+
+1. **列表浏览**
+ - 进入概念中心
+ - 切换排序方式
+
+2. **时间线查看**
+ - 点击某个概念卡片
+ - 打开时间线 Modal
+ - 展开某个日期
+ - 点击新闻/报告
+
+#### 期待结果:
+
+**控制台输出:**
+```javascript
+📍 Event tracked: concept_list_viewed
+ sort_by: "change_percent_desc"
+
+📍 Event tracked: concept_clicked
+ concept_name: "芯片"
+
+📍 Event tracked: concept_detail_viewed
+ concept_name: "芯片"
+ view_type: "timeline_modal"
+
+📍 Event tracked: timeline_date_toggled
+ date: "2025-01-15"
+ action: "expand"
+```
+
+---
+
+### 测试 5:涨停分析交互事件
+
+#### 操作步骤:
+
+1. **日期选择**
+ - 进入涨停分析页面
+ - 选择不同日期
+
+2. **板块交互**
+ - 展开某个板块
+ - 点击板块名称
+
+3. **股票交互**
+ - 点击涨停股票
+ - 查看详情
+
+#### 期待结果:
+
+**控制台输出:**
+```javascript
+📍 Event tracked: limit_analyse_page_viewed
+
+📍 Event tracked: date_selected
+ date: "20250115"
+
+📍 Event tracked: sector_toggled
+ sector_name: "科技"
+ action: "expand"
+
+📍 Event tracked: limit_stock_clicked
+ stock_code: "000001"
+ stock_name: "平安银行"
+```
+
+---
+
+## 📊 验证上报结果
+
+### 在 PostHog Dashboard 验证
+
+#### 步骤 1:打开 Live Events
+
+1. 登录 PostHog Dashboard
+2. 选择您的测试项目
+3. 点击左侧菜单 **"Activity"**
+4. 选择 **"Live Events"**
+
+#### 步骤 2:观察实时事件流
+
+您应该看到实时的事件流,格式类似:
+
+```
+🔴 LIVE $pageview 1s ago
+ page_path: /community
+ user_id: anonymous_abc123
+
+🔴 LIVE search_initiated 2s ago
+ context: community
+
+🔴 LIVE search_query_submitted 3s ago
+ query: "科技"
+ category: "community"
+```
+
+#### 步骤 3:检查事件属性
+
+点击任意事件,展开详情,验证:
+- ✅ 事件名称正确
+- ✅ 所有属性完整
+- ✅ 时间戳准确
+- ✅ 用户信息正确
+
+---
+
+## 📋 测试清单
+
+使用以下清单记录测试结果:
+
+### 页面浏览事件(5项)
+
+- [ ] 首页浏览 - `$pageview`
+- [ ] 社区页面浏览 - `community_page_viewed`
+- [ ] 个股中心浏览 - `stock_overview_page_viewed`
+- [ ] 概念中心浏览 - `concept_page_viewed`
+- [ ] 涨停分析浏览 - `limit_analyse_page_viewed`
+
+### 社区页面事件(6项)
+
+- [ ] 搜索初始化 - `search_initiated`
+- [ ] 搜索查询提交 - `search_query_submitted`
+- [ ] 筛选器应用 - `filter_applied`
+- [ ] 帖子点击 - `post_clicked`
+- [ ] 评论点击 - `comment_clicked`
+- [ ] 用户资料查看 - `user_profile_viewed`
+
+### 个股中心事件(4项)
+
+- [ ] 股票搜索 - `stock_searched`
+- [ ] 概念点击 - `concept_clicked`
+- [ ] 概念股票点击 - `concept_stock_clicked`
+- [ ] 热力图股票点击 - `heatmap_stock_clicked`
+
+### 概念中心事件(5项)
+
+- [ ] 概念列表查看 - `concept_list_viewed`
+- [ ] 排序更改 - `sort_changed`
+- [ ] 概念点击 - `concept_clicked`
+- [ ] 概念详情查看 - `concept_detail_viewed`
+- [ ] 新闻/报告点击 - `news_clicked` / `report_clicked`
+
+### 涨停分析事件(6项)
+
+- [ ] 页面查看 - `limit_analyse_page_viewed`
+- [ ] 日期选择 - `date_selected`
+- [ ] 每日统计查看 - `daily_stats_viewed`
+- [ ] 板块展开/收起 - `sector_toggled`
+- [ ] 板块点击 - `sector_clicked`
+- [ ] 涨停股票点击 - `limit_stock_clicked`
+
+---
+
+## ⚠️ 常见问题
+
+### 问题 1:控制台没有看到 PostHog 日志
+
+**可能原因:**
+- API Key 配置错误
+- 应用没有重启
+- 浏览器控制台过滤了日志
+
+**解决方案:**
+1. 检查 `.env.local` 中的 API Key 是否正确
+2. 确保重启了应用:`npm run kill-port && npm start`
+3. 打开控制台,清除所有过滤器
+4. 刷新页面
+
+---
+
+### 问题 2:PostHog Live Events 没有数据
+
+**可能原因:**
+- 网络问题
+- API Key 错误
+- 项目选择错误
+
+**解决方案:**
+1. 打开浏览器网络面板(Network)
+2. 筛选 XHR 请求,查找 `posthog.com` 的请求
+3. 检查请求状态码:
+ - `200 OK` → 正常
+ - `401 Unauthorized` → API Key 错误
+ - `404 Not Found` → 项目不存在
+4. 确认 PostHog Dashboard 选择了正确的项目
+
+---
+
+### 问题 3:事件上报了,但属性不完整
+
+**可能原因:**
+- 代码中传递的参数不完整
+- 某些状态未正确初始化
+
+**解决方案:**
+1. 查看控制台的详细日志
+2. 对比 PostHog Live Events 中的数据
+3. 检查对应的事件追踪代码
+4. 提供反馈给开发团队
+
+---
+
+## 📸 测试截图建议
+
+为了完整记录测试结果,建议截图:
+
+1. **PostHog 初始化成功**
+ - 浏览器控制台初始化日志
+
+2. **Live Events 实时流**
+ - PostHog Dashboard Live Events 页面
+
+3. **典型事件详情**
+ - 展开某个事件,显示所有属性
+
+4. **事件统计**
+ - PostHog Insights 或 Trends 页面
+
+---
+
+## ✅ 测试完成后
+
+测试完成后,您可以:
+
+1. **保持配置**
+ - 保留 API Key 在 `.env.local` 中
+ - 继续使用控制台 + PostHog Cloud 双模式
+
+2. **切换回仅控制台模式**
+ - 清空 `.env.local` 中的 `REACT_APP_POSTHOG_KEY`
+ - 重启应用
+ - 仅在控制台查看事件(不上报)
+
+3. **配置生产环境**
+ - 创建生产环境的 PostHog 项目
+ - 将生产 API Key 填入 `.env` 文件
+ - 部署时使用生产配置
+
+---
+
+**祝测试顺利!** 🎉
+
+如有任何问题,请查阅:
+- [PostHog 官方文档](https://posthog.com/docs)
+- [ENVIRONMENT_SETUP.md](./ENVIRONMENT_SETUP.md)
+- [POSTHOG_INTEGRATION.md](./POSTHOG_INTEGRATION.md)
diff --git a/docs/POSTHOG_TRACKING_GUIDE.md b/docs/POSTHOG_TRACKING_GUIDE.md
new file mode 100644
index 00000000..4dfd0d14
--- /dev/null
+++ b/docs/POSTHOG_TRACKING_GUIDE.md
@@ -0,0 +1,561 @@
+# PostHog 事件追踪开发者指南
+
+## 📚 目录
+
+1. [快速开始](#快速开始)
+2. [Hook使用指南](#hook使用指南)
+3. [添加新的追踪Hook](#添加新的追踪hook)
+4. [集成追踪到组件](#集成追踪到组件)
+5. [最佳实践](#最佳实践)
+6. [常见问题](#常见问题)
+
+---
+
+## 🚀 快速开始
+
+### 当前已有的追踪Hooks
+
+| Hook名称 | 用途 | 适用场景 |
+|---------|------|---------|
+| `useAuthEvents` | 认证事件 | 注册、登录、登出、微信授权 |
+| `useStockOverviewEvents` | 个股分析 | 个股页面浏览、图表查看、指标分析 |
+| `useConceptEvents` | 概念追踪 | 概念浏览、搜索、相关股票查看 |
+| `useCompanyEvents` | 公司分析 | 公司详情、财务数据、行业对比 |
+| `useLimitAnalyseEvents` | 涨停分析 | 涨停榜单、筛选、个股详情 |
+| `useCommunityEvents` | 社区事件 | 新闻浏览、事件追踪、评论互动 |
+| `useEventDetailEvents` | 事件详情 | 事件分析、时间线、影响评估 |
+| `useDashboardEvents` | 仪表板 | 自选股、关注事件、评论管理 |
+| `useTradingSimulationEvents` | 模拟盘 | 下单、持仓、收益追踪 |
+| `useSearchEvents` | 搜索行为 | 搜索查询、结果点击、筛选 |
+| `useNavigationEvents` | 导航交互 | 菜单点击、主题切换、Logo点击 |
+| `useProfileEvents` | 个人资料 | 资料更新、密码修改、账号绑定 |
+| `useSubscriptionEvents` | 订阅支付 | 定价选择、支付流程、订阅管理 |
+
+---
+
+## 📖 Hook使用指南
+
+### 1. 基础用法
+
+```javascript
+// 第一步:导入Hook
+import { useSearchEvents } from '../../hooks/useSearchEvents';
+
+// 第二步:在组件中初始化
+function SearchComponent() {
+ const searchEvents = useSearchEvents({ context: 'global' });
+
+ // 第三步:在事件处理函数中调用追踪方法
+ const handleSearch = (query) => {
+ searchEvents.trackSearchQuerySubmitted(query, resultCount);
+ // ... 执行搜索逻辑
+ };
+}
+```
+
+### 2. 带参数的Hook初始化
+
+大多数Hook支持配置参数,用于区分不同的使用场景:
+
+```javascript
+// 搜索Hook - 指定搜索上下文
+const searchEvents = useSearchEvents({
+ context: 'community' // 或 'stock', 'news', 'concept'
+});
+
+// 个人资料Hook - 指定页面类型
+const profileEvents = useProfileEvents({
+ pageType: 'settings' // 或 'profile', 'security'
+});
+
+// 导航Hook - 指定组件位置
+const navEvents = useNavigationEvents({
+ component: 'top_nav' // 或 'sidebar', 'footer'
+});
+
+// 订阅Hook - 传入当前订阅信息
+const subscriptionEvents = useSubscriptionEvents({
+ currentSubscription: {
+ plan: user?.subscription_plan || 'free',
+ status: user?.subscription_status || 'none'
+ }
+});
+```
+
+### 3. 常见追踪模式
+
+#### 模式A:简单事件追踪
+```javascript
+// 点击事件
+
+```
+
+#### 模式B:成功/失败双向追踪
+```javascript
+const handleSave = async () => {
+ try {
+ await saveData();
+ profileEvents.trackProfileUpdated(updatedFields, data);
+ toast({ title: "保存成功" });
+ } catch (error) {
+ profileEvents.trackProfileUpdateFailed(attemptedFields, error.message);
+ toast({ title: "保存失败" });
+ }
+};
+```
+
+#### 模式C:条件追踪
+```javascript
+const handleSearch = (query, resultCount) => {
+ // 只在有查询词时追踪
+ if (query) {
+ searchEvents.trackSearchQuerySubmitted(query, resultCount);
+ }
+
+ // 无结果时自动触发额外追踪
+ if (resultCount === 0) {
+ // Hook内部已自动追踪 SEARCH_NO_RESULTS
+ }
+};
+```
+
+---
+
+## 🔨 添加新的追踪Hook
+
+### 步骤1:创建Hook文件
+
+在 `/src/hooks/` 目录下创建新文件,例如 `useYourFeatureEvents.js`:
+
+```javascript
+// src/hooks/useYourFeatureEvents.js
+import { useCallback } from 'react';
+import { usePostHogTrack } from './usePostHogRedux';
+import { RETENTION_EVENTS } from '../lib/constants';
+import { logger } from '../utils/logger';
+
+/**
+ * 你的功能事件追踪 Hook
+ * @param {Object} options - 配置选项
+ * @param {string} options.context - 使用上下文
+ * @returns {Object} 事件追踪处理函数集合
+ */
+export const useYourFeatureEvents = ({ context = 'default' } = {}) => {
+ const { track } = usePostHogTrack();
+
+ /**
+ * 追踪功能操作
+ * @param {string} actionName - 操作名称
+ * @param {Object} details - 操作详情
+ */
+ const trackFeatureAction = useCallback((actionName, details = {}) => {
+ if (!actionName) {
+ logger.warn('useYourFeatureEvents', 'trackFeatureAction: actionName is required');
+ return;
+ }
+
+ track(RETENTION_EVENTS.FEATURE_USED, {
+ feature_name: 'your_feature',
+ action_name: actionName,
+ context,
+ ...details,
+ timestamp: new Date().toISOString(),
+ });
+
+ logger.debug('useYourFeatureEvents', '📊 Feature Action Tracked', {
+ actionName,
+ context,
+ });
+ }, [track, context]);
+
+ return {
+ trackFeatureAction,
+ // ... 更多追踪方法
+ };
+};
+
+export default useYourFeatureEvents;
+```
+
+### 步骤2:定义事件常量(如需要)
+
+在 `/src/lib/constants.js` 中添加新事件:
+
+```javascript
+export const RETENTION_EVENTS = {
+ // ... 现有事件
+ YOUR_FEATURE_VIEWED: 'Your Feature Viewed',
+ YOUR_FEATURE_ACTION: 'Your Feature Action',
+};
+```
+
+### 步骤3:在组件中集成
+
+```javascript
+import { useYourFeatureEvents } from '../../hooks/useYourFeatureEvents';
+
+function YourComponent() {
+ const featureEvents = useYourFeatureEvents({ context: 'main_page' });
+
+ const handleAction = () => {
+ featureEvents.trackFeatureAction('button_clicked', {
+ button_name: 'submit',
+ user_role: user?.role
+ });
+ };
+
+ return ;
+}
+```
+
+---
+
+## 🎯 集成追踪到组件
+
+### 完整集成示例
+
+```javascript
+// src/views/YourFeature/YourComponent.js
+import React, { useState, useEffect } from 'react';
+import { useYourFeatureEvents } from '../../hooks/useYourFeatureEvents';
+
+export default function YourComponent() {
+ const [data, setData] = useState([]);
+
+ // 🎯 初始化追踪Hook
+ const featureEvents = useYourFeatureEvents({
+ context: 'your_feature'
+ });
+
+ // 🎯 页面加载时自动追踪
+ useEffect(() => {
+ featureEvents.trackPageViewed();
+ }, [featureEvents]);
+
+ // 🎯 用户操作追踪
+ const handleItemClick = (item) => {
+ featureEvents.trackItemClicked(item.id, item.name);
+ // ... 业务逻辑
+ };
+
+ // 🎯 表单提交追踪(成功/失败)
+ const handleSubmit = async (formData) => {
+ try {
+ const result = await submitData(formData);
+ featureEvents.trackSubmitSuccess(formData, result);
+ toast({ title: '提交成功' });
+ } catch (error) {
+ featureEvents.trackSubmitFailed(formData, error.message);
+ toast({ title: '提交失败' });
+ }
+ };
+
+ return (
+