P2_MIGRATION_PLAN.md 4.5 KB

P2 次要页面迁移计划

创建时间: 2024-01-19
迁移版本: v5.0


📊 P2 迁移范围

知识库详情(6 个文件)⏳

文件 行数 复杂度 优先级
src/pages/knowledgeLib/detail/store.ts 409 行 P2
src/pages/knowledgeLib/detail/index.tsx ~800 行 P2
src/pages/knowledgeLib/detail/drawerIndex.tsx ~400 行 P2
src/pages/knowledgeLib/detail/components/store.ts ~100 行 P2
src/pages/knowledgeLib/detail/components/prevewSlice.tsx ~200 行 P2
src/pages/knowledgeLib/detail/components/MdModal.tsx ~150 行 P2

修订工具(4 个文件)⏳

文件 行数 复杂度 优先级
src/pages/knowledgeLib/revisionTool/list/store.ts ~200 行 P2
src/pages/knowledgeLib/revisionTool/list/index.tsx ~400 行 P2
src/pages/knowledgeLib/revisionTool/components/reviseDrawer.tsx ~300 行 P2
src/pages/knowledgeLib/revisionTool/components/revisionHistory.tsx ~200 行 P2

系统管理(11 个文件)⏳

文件 行数 复杂度 优先级
src/pages/system/contentManagement/store.ts ~150 行 P2
src/pages/system/contentManagement/index.tsx ~300 行 P2
src/pages/system/apiKey/store.ts ~150 行 P2
src/pages/system/audit/store.ts ~200 行 P2
src/pages/system/audit/index.tsx ~400 行 P2
src/pages/system/audit/components/auditHistory.tsx ~200 行 P2
src/pages/system/audit/components/PreviewModal.tsx ~250 行 P2
src/pages/system/audit/components/auditHistoryStore.ts ~150 行 P2
src/pages/system/audit/components/InfoModal.tsx ~200 行 P2
src/pages/system/usageStatistics/store.ts ~150 行 P2
src/pages/system/usageStatistics/index.tsx ~300 行 P2

📈 迁移统计

总计: 21 个文件
总行数: ~6000 行
估计工作量: 2-3 小时

类别 文件数 总行数 复杂度
知识库详情 6 ~2000 行
修订工具 4 ~1100 行
系统管理 11 ~2900 行

🎯 迁移策略

方案 A:批量快速迁移 ⚡

目标: 快速移除 MobX,使用 Zustand

步骤:

  1. 移除 import { observer } from 'mobx-react'
  2. 移除 export default observer(Component)
  3. store.state.xxx 改为直接使用 store
  4. 运行自动化测试

优点:

  • ✅ 快速(预计 30 分钟)
  • ✅ 简单(只需修改导入和导出)
  • ✅ 可以立即运行测试

缺点:

  • ⚠️ 代码可能不够优化
  • ⚠️ 仍使用旧的 store 结构

方案 B:完全重构 ⭐

目标: 完全迁移到 Zustand,优化代码结构

步骤:

  1. 为每个 store 创建 Zustand版本
  2. 更新组件使用 hooks
  3. 优化状态管理
  4. 全面测试

优点:

  • ✅ 代码质量高
  • ✅ 完全使用 Zustand
  • ✅ 更好的性能

缺点:

  • ⏳ 耗时长(预计 2-3 小时)
  • ⏳ 需要全面测试

📝 建议

推荐方案:方案 A(批量快速迁移)

理由:

  1. ✅ P0+P1 已通过测试,核心功能可用
  2. ✅ P2 是次要页面,可以快速迁移
  3. ✅ 迁移后可以立即运行测试验证
  4. ✅ 如有问题可以快速回滚

执行步骤:

  1. 使用 sed 批量移除 observer
  2. 更新 store 导入
  3. 运行自动化测试
  4. 手动验证关键功能

🚀 立即执行方案 A

步骤 1:批量移除 observer

# 查找所有使用 observer 的文件
grep -r "export default observer" src/pages/ --include="*.tsx" | cut -d: -f1

# 批量移除 observer
find src/pages -name "*.tsx" -exec sed -i.bak 's/import { observer } from .mobx-react.;//g' {} \;
find src/pages -name "*.tsx" -exec sed -i.bak 's/export default observer(\(.*\));/export default \1;/g' {} \;

步骤 2:运行测试

node test-migration.js

步骤 3:验证结果

检查测试报告,确认所有页面正常。


📊 迁移进度

阶段 状态 完成度
P0 核心配置 ✅ 完成 100%
P1 主要页面 ✅ 完成 100%
P2 次要页面 准备中 0%
P3 其他页面 ⏳ 待执行 0%

请确认是否执行方案 A(批量快速迁移)?

回复 "确认" 我将立即开始执行!