hookehuyr

docs: 更新Vue代码风格指南中的优化清单

移除已完成的优化项,更新剩余项的描述和优先级。
将“统一API返回结构”的重点从调整判断逻辑改为逐步替换fn为request。
删除已完成的“收敛用户态来源”和“清理重复实现”条目。
新增“固化格式化规则”作为第三项。
......@@ -184,32 +184,19 @@ Vue 官方建议在 SFC + Composition API 场景使用 `<script setup>`,因为
## 6. 结合本项目:可直接落地的优化清单(按收益排序)
1) 统一 API 返回结构:去掉 `false` 返回,调用侧统一 `res.code === 1` (已做调整,在recall_users.js里面使用了request函数做了封装)
1) 统一 API 返回结构:逐步替换 `fn``request`
- 目标:减少大量 `if (res && res.code)` 的防御判断,把错误信息(msg)保留下来
- 涉及文件:[fn.js](file:///Users/huyirui/program/itomix/git/mlaj/src/api/fn.js)
-有风险:部分页面写法是 `if (res.code) { ... }`,当 `code=401` 等非 0 值时会被当成“成功”分支;建议统一改成 `if (res.code === 1)`
- 现有风险`qs` 的包名是小写 `qs`,但当前存在 `import qs from 'Qs'` 写法,在大小写敏感环境下可能无法解析(建议统一为 `qs`)。
-状:新代码已开始使用 `request` 函数(返回统一结构),但旧的 `fn` 函数(失败返回 `false`)仍被大量使用。建议后续开发中优先使用 `request`,并逐步重构旧代码
- 风险提示`qs` 的包名是小写 `qs`,但当前存在 `import qs from 'Qs'` 写法,在大小写敏感环境下可能无法解析(建议统一为 `qs`)。
2) 收敛“用户态”的单一事实来源:context/store 负责运行时,localStorage 负责持久化镜像 (已做调整,在auth_user_info.js里面使用了getUserInfoFromStorage和removeUserInfoFromStorage函数做了封装)
- 目标:避免 `currentUser``user_info`、请求头三套来源互相覆盖导致的“偶发态”
- 涉及文件:[auth.js](file:///Users/huyirui/program/itomix/git/mlaj/src/contexts/auth.js)[axios.js](file:///Users/huyirui/program/itomix/git/mlaj/src/utils/axios.js)
3) 从 1 个大页面开始拆 composable:只拆“最独立的一块功能”
2) 从 1 个大页面开始拆 composable:只拆“最独立的一块功能”
- 目标:不追求一次性完美分层,但要让页面先变薄,后续才好迭代与测试
- 典型样例:[HomePage.vue](file:///Users/huyirui/program/itomix/git/mlaj/src/views/HomePage.vue)[StudyDetailPage.vue](file:///Users/huyirui/program/itomix/git/mlaj/src/views/study/StudyDetailPage.vue)
4) 清理“重复/并存”的实现:避免同名组件在不同目录各自演进
- 目标:减少认知负担与误用风险(例如存在两个 `AppLayout`
- 涉及文件:[AppLayout.vue](file:///Users/huyirui/program/itomix/git/mlaj/src/components/layout/AppLayout.vue)(已完成归一,移除 /src/layouts)
5) 降低“语法形态”混用成本:能不用 JSX 就别用
- 目标:减少团队理解成本(JSX + 模板混用会让页面维护难度上升),也减少对 `defineComponent/h` 等写法的依赖
- 涉及文件(存在 `<script setup lang="jsx">`):[HomePage.vue](file:///Users/huyirui/program/itomix/git/mlaj/src/views/HomePage.vue)[CoursesPage.vue](file:///Users/huyirui/program/itomix/git/mlaj/src/views/courses/CoursesPage.vue)[CourseDetailPage.vue](file:///Users/huyirui/program/itomix/git/mlaj/src/views/courses/CourseDetailPage.vue)
3) 固化格式化规则(ESLint/Prettier 选一个),把“风格争议”交给工具。
## 7. 推荐写法示例(以“无 TS、可读性优先”为前提)
......