# 移动端前端代码样例索引(三段式注释 + 范式摘录) > 本文件是移动端仓库的**代码范式参考**(与 PC 端 `EXAMPLES.md` 同构)。 > 所有 TS 文件采用**三段式注释**:① 入参 / ② 出参 / ③ 异常场景;SFC 骨架顺序:imports → store → 状态 → 生命周期 → 方法。 > 文件索引列出当前已落地文件的职责 + 关键范式,新增文件照此范式写。 ## 1. 三段式注释模板 ```ts /** * 文件头(一句话说清职责 + 所属域/层) * * 典型使用(调用方文件路径 + 代码片段): * ... */ /** * 函数/方法注释。 * * 入参: * - paramName Type:说明(必填/可选/默认值)。 * 出参: * - ReturnType:说明(成功/失败各返回什么)。 * 异常场景: * - 条件 A:行为 X(静默/抛错/降级/跳登录)。 */ function xxx(param: Type): ReturnType { ... } ``` **规则**: - 入参/出参**必须**写(哪怕是"无");异常场景**必须**写(至少一条); - 禁止"见文档"式空注释;禁止复制粘贴函数名当注释; - SFC 内:` ``` ### 3.3 Vant 表单 rules(FieldRule 类型 + 正确 trigger 值) ```vue ``` ### 3.4 http 层零 UI 依赖(toast 注入 + 路由注入) ```ts // shared/api/http.ts(底层基础设施,零 UI 依赖) let toastHandler: ((message: string) => void) | undefined; export function setBusinessErrorToaster(fn: (message: string) => void): void { toastHandler = fn; } function toastBusinessError(message: string): void { if (toastHandler) toastHandler(message); else console.warn('[biz-error]', message); // 未注入时降级 } // apps/teacher/src/main.ts(装配 UI 后注入,方向 UI→基础) import { showFailToast } from 'vant'; import { setBusinessErrorToaster, setRouterForRedirect } from '@unified/shared/api/http'; setBusinessErrorToaster((m) => showFailToast(m)); setRouterForRedirect(router); // 解 router→http→router 循环依赖 ``` ### 3.5 monorepo 每端独立 tsconfig(@ 路径各端独立) ```jsonc // apps/teacher/tsconfig.json(本端独立,extends 根 tsconfig.base.json) { "extends": "../../tsconfig.base.json", "compilerOptions": { "baseUrl": ".", "paths": { "@": ["./src"], // 本端业务层(各端独立) "@/*": ["./src/*"], "@unified/shared": ["../../packages/shared/src"], // 共享层(源码消费) "@unified/shared/*": ["../../packages/shared/src/*"] } }, "include": [ "../../global.d.ts", // 根 UMD 全局声明 "./src/**/*.ts", "./src/**/*.vue", "../../packages/shared/src/**/*.ts", // 共享层源码(类型直达) "../../packages/shared/src/**/*.vue", "../../shims/**/*.ts" // 胶水层 ] } ``` ### 3.6 微信授权轮询(占位,onUnmounted 必清定时器) ```vue ``` ## 4. 新增文件清单(照此范式写) | 场景 | 照哪个范式 | 备注 | |---|---|---| | 新域列表页 | §3.2(useListPage + list-page) | 补 `api/{域}/{资源}.ts` + `views/{域}/{资源}/list.vue` | | 新域详情页 | 手动路由 + `api` 接口 | `views/{域}/{资源}/detail.vue` | | 新域接口 | `api/org/institution.ts` 范式 | 一资源一文件;DTO + Filter + 请求函数 | | 新共享组件 | `components/list-page.vue` 范式 | 泛型 SFC 或普通 SFC;零业务耦合 | | 新共享 composable | `composables/use-list-page.ts` 范式 | 泛型 + 返回 Ref 集合 | | 新指令 | `directives/perm.ts` 范式 | mounted + updated 双钩子 | | student/parent 端 | teacher 端全量复制 | 改 package.json name + vite port + router 路由表 + views 页面 |