refactor(titles): 拆分 useTitleLibrary 为4个子Hook(174→58行, -67%) #1156
Reference in New Issue
Block a user
Delete Branch "refactor/title-library-hook"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
将
useTitleLibrary.ts(174行)拆分为目录结构,按职责分离:文件变化
hooks/useTitleLibrary.ts(174行)hooks/useTitleLibrary/index.ts(58行)hooks/useTitleLibrary/useTitleData.ts(47行)hooks/useTitleLibrary/useTitleFilters.ts(84行)hooks/useTitleLibrary/useTitleMutations.ts(34行)hooks/useTitleLibrary/useTitleActions.ts(37行)test/pages/titles/smoke.test.tsx兼容性
@/pages/titles/hooks/useTitleLibrary保持不变(目录解析到 index.ts)🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[apps/web/src/pages/titles/hooks/useTitleLibrary/useTitleFilters.ts: 第10行] 移除未使用的参数
_categories被传入但在函数体内未被使用。虽然加下划线表示有意忽略,但既然不需要,建议直接从参数列表中移除,保持接口简洁。[apps/web/src/pages/titles/hooks/useTitleLibrary/useTitleData.ts: 第44行] 优化
activeCategory的计算性能activeCategory是通过find计算得出的,每次组件渲染都会生成一个新的引用(即使值未变)。由于它是useTitleFilters中filteredTitles的依赖项,这会导致筛选逻辑在每次渲染时都重新执行。建议使用useMemo包裹activeCategory的计算,仅在categories或activeCatId变化时重新计算。✅ 良好实践
Data、Filters、Mutations、Actions四个职责单一的 Hook,显著提升了代码的可维护性和可测试性。useTitleMutations.ts中,将删除成功的提示(message.success)从调用处移到了onSuccess回调中,修复了原代码中无论请求成功与否都会提示“已删除”的逻辑缺陷。smoke.test.tsx确保模块加载无语法错误,符合工程化最佳实践。✅ 格式检查通过 | ✅ 逻辑审查通过 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 17:06:15 | 模型:
🗑️ 预览环境已清理
PR #1156 已关闭或合并,对应的预览环境已被清理。