# Vue Review 与交付清单 按变更风险使用清单。只勾选实际检查的项目,并将问题按严重性优先报告。 ## 需求与范围 - [ ] 实现与用户要求和验收标准一致。 - [ ] 未混入依赖升级、API 迁移、全仓格式化或无关重构。 - [ ] 已识别所有直接调用方、共享契约和回归范围。 - [ ] 新抽象来自真实复用或清晰职责,而非假设需求。 ## Vue 与组件 - [ ] API 风格和 Vue 版本与项目一致。 - [ ] 组件名为多单词,文件和符号命名符合项目约定。 - [ ] props、emits、slots、`v-model` 与 exposed API 明确且最小。 - [ ] 未修改 props,未破坏单向数据流。 - [ ] 模板简洁、无副作用,复杂逻辑已移出模板。 - [ ] `v-for` key 稳定,未在同一元素混用 `v-if` 与 `v-for`。 - [ ] `computed` 纯净,watcher 有明确来源并清理副作用。 - [ ] loading、empty、error、success、disabled 等适用状态完整。 ## TypeScript 与数据 - [ ] 未用 `any`、无依据断言、`@ts-ignore` 或 `!` 掩盖问题。 - [ ] 外部数据、路由参数、storage 和环境变量已解析或校验。 - [ ] DTO、领域模型和表单模型在需要时已分离。 - [ ] 异步请求处理失败、复位、取消或过期响应。 - [ ] 公共类型和 API 变更已检查全部调用方。 ## 状态、路由与架构 - [ ] 状态处于最小合理层级,没有不必要地放入 Pinia。 - [ ] store state 最小、getter 纯净、action 边界清晰。 - [ ] composable 依赖明确、返回面最小、资源可释放。 - [ ] 页面路由按需懒加载,guard 没有承载不相关业务。 - [ ] 前端权限控制未被误当成服务端授权。 - [ ] 组件、store 与页面未直接复制底层 API 协议逻辑。 ## 安全与隐私 - [ ] 未将 secrets 或敏感 token 放入客户端代码、日志、测试或 `VITE_*`。 - [ ] 未渲染未经可信净化的外部 HTML。 - [ ] URL、重定向、动态资源和用户输入按上下文处理。 - [ ] 错误、日志、埋点和测试数据已脱敏。 ## 可访问性与界面 - [ ] 使用正确的原生语义元素。 - [ ] 所有交互可键盘操作并有可见焦点。 - [ ] 表单控件有 label,错误和状态不只依赖颜色。 - [ ] 图标按钮、弹窗、动态通知和路由切换有适当可访问语义。 - [ ] 已考虑窄视口、长文本、缩放、主题和减少动画。 ## 性能与生命周期 - [ ] 没有无证据的过早优化或滥用缓存。 - [ ] 页面级大模块按需加载,新增依赖的 bundle 影响合理。 - [ ] 大列表、大对象或高频更新路径已按风险检查。 - [ ] timer、listener、observer、subscription 和请求在适当时机清理。 - [ ] SSR 项目没有 hydration 不一致或跨请求状态污染。 ## 测试与验证 - [ ] 缺陷修复有回归证据。 - [ ] 测试关注公开行为,不耦合内部实现。 - [ ] 关键成功、失败、空、加载和边界分支有相称覆盖。 - [ ] 已运行适用的定向测试、lint、typecheck、测试套件、build 或 E2E。 - [ ] 未运行或失败的检查已准确披露,不推测通过。 ## Review 输出格式 先报告问题,再给摘要。每个问题包含: ```text 严重性 + 文件与行号 → 可触发的具体场景 → 对用户或系统的影响 → 最小修复方向 ``` 严重性建议: - P0:可造成安全事故、数据破坏或系统不可用,必须立即阻断。 - P1:常见路径中的明确功能错误、权限问题或严重回归,合并前修复。 - P2:边界条件缺陷、可维护性风险或缺失的重要测试,应尽快修复。 - P3:低风险一致性、可读性或非阻断改进。 若未发现可操作问题,明确说明“未发现问题”,并列出已检查范围与仍未验证的风险。