5.1 KiB
5.1 KiB
Day 17 - 前端重构与体验优化
🧩 前端 UI 拆分 (09:10)
内容
- 首页
page.tsx拆分为独立 UI 组件,状态与逻辑仍集中在页面 - 新增首页组件目录
frontend/src/features/home/ui/
组件列表
HomeHeaderMaterialSelectorScriptEditorTitleSubtitlePanelVoiceSelectorRefAudioPanelBgmPanelGenerateActionBarPreviewPanelHistoryList
🧰 前端通用工具抽取 (09:30)
内容
- 抽取 API Base / 资源 URL / 日期格式化等通用工具
- 首页与发布页统一调用,消除重复逻辑
涉及文件
frontend/src/shared/lib/media.tsfrontend/src/app/page.tsxfrontend/src/app/publish/page.tsx
📝 前端规范更新 (09:40)
内容
- 更新
FRONTEND_DEV.md以匹配最新目录结构 - 新增
media.ts使用规范与示例 - 增加组件拆分规范与页面 checklist
涉及文件
Docs/FRONTEND_DEV.md
🎨 交互体验与视图优化 (10:00)
标题/字幕预览
- 标题/字幕预览按素材分辨率缩放,字号更接近成片
- 标题/字幕样式选择持久化,刷新不回默认
- 默认样式更新:标题 90px 站酷快乐体,字幕 60px 经典黄字 + DingTalkJinBuTi
发布页优化
- 选择作品改为卡片列表 + 搜索 + 预览弹窗
⚡ 性能微优化 (10:30)
内容
- 列表渲染启用
content-visibility(素材/历史/参考音频/发布作品),BGM 列表保留滚动定位 - 首屏数据请求并行化(
Promise.allSettled) - localStorage 写入防抖(文本/标题/BGM 音量/发布表单)
🖼️ 预览弹窗增强 (11:10)
内容
- 预览弹窗统一为可复用组件,支持标题与提示
- 发布页预览与素材预览共享弹窗样式
- 弹窗头部样式统一(图标 + 标题 + 关闭按钮)
涉及文件
frontend/src/components/VideoPreviewModal.tsxfrontend/src/app/page.tsxfrontend/src/app/publish/page.tsx
🧭 术语统一 (11:20)
内容
- “视频预览” → “作品预览”
- “历史视频” → “历史作品”
- “选择要发布的视频” → “选择要发布的作品”
- “选择素材视频” → “视频素材”
- “选择配音方式” → “配音方式”
🧱 Phase 2 Hook 抽取 (11:45)
内容
useTitleSubtitleStyles:标题/字幕样式获取与默认选择逻辑useMaterials:素材列表/上传/删除逻辑抽取useRefAudios:参考音频列表/上传/删除逻辑抽取useBgm:背景音乐列表与加载状态抽取useMediaPlayers:音频试听逻辑集中管理(参考音频/背景音乐)useGeneratedVideos:历史作品列表获取 + 选择逻辑抽取
涉及文件
frontend/src/features/home/model/useTitleSubtitleStyles.tsfrontend/src/features/home/model/useMaterials.tsfrontend/src/features/home/model/useRefAudios.tsfrontend/src/features/home/model/useBgm.tsfrontend/src/features/home/model/useMediaPlayers.tsfrontend/src/features/home/model/useGeneratedVideos.tsfrontend/src/app/page.tsx
🧩 首页持久化修复 (12:20)
内容
- 接入
useHomePersistence,补齐isRestored恢复/保存逻辑 - 修复首页刷新后选择项恢复链路,
npm run build通过
涉及文件
frontend/src/app/page.tsxfrontend/src/features/home/model/useHomePersistence.ts
🧩 发布预览与播放修复 (14:10)
内容
- 发布页作品预览兼容签名 URL 与相对路径
- 参考音频试听统一走
resolveMediaUrl - 素材/BGM 选择在列表变化时自动回退有效项
- 录音预览 URL 回收、预览弹窗滚动状态恢复、全局任务提示挂载
涉及文件
frontend/src/app/publish/page.tsxfrontend/src/features/home/model/useMediaPlayers.tsfrontend/src/features/home/model/useBgm.tsfrontend/src/features/home/model/useMaterials.tsfrontend/src/features/home/ui/RefAudioPanel.tsxfrontend/src/components/VideoPreviewModal.tsxfrontend/src/app/layout.tsx
🧩 标题同步与长度限制 (15:30)
内容
- 片头标题修改同步写入发布信息标题
- 标题输入兼容中文输入法,限制 15 字(发布信息同规则)
涉及文件
frontend/src/features/home/model/useHomeController.tsfrontend/src/features/home/ui/TitleSubtitlePanel.tsxfrontend/src/features/publish/model/usePublishController.ts
🧱 轻量 FSD 迁移 (16:20)
内容
- 页面瘦身:
app仅保留入口组件,业务逻辑集中到 Controller Hook - 引入
features/*分层:UI 与 model 分离,Home/Publish 按功能聚合 - 通用能力下沉到
shared/*(lib/hooks/api)
涉及文件
frontend/src/features/home/ui/HomePage.tsxfrontend/src/features/home/model/useHomeController.tsfrontend/src/features/publish/ui/PublishPage.tsxfrontend/src/features/publish/model/usePublishController.tsfrontend/src/shared/lib/media.tsfrontend/src/shared/lib/title.tsfrontend/src/shared/api/axios.tsfrontend/src/shared/hooks/useTitleInput.tsfrontend/src/app/page.tsxfrontend/src/app/publish/page.tsx