|
@@ -13,13 +13,21 @@ alwaysApply: true
|
|
|
|
|
|
|
|
- **严格遵循目录结构与开发流程**。
|
|
- **严格遵循目录结构与开发流程**。
|
|
|
- **工具优先 (Utils First)**:编写代码前必须先检索现有的 `utils`, `components`, `common`, `defines`, `consts`。**优先复用,缺失时再补充通用函数**,禁止直接在业务逻辑中硬编码通用逻辑。
|
|
- **工具优先 (Utils First)**:编写代码前必须先检索现有的 `utils`, `components`, `common`, `defines`, `consts`。**优先复用,缺失时再补充通用函数**,禁止直接在业务逻辑中硬编码通用逻辑。
|
|
|
-- **Lint & Cleanup Mandatory**:每次代码修改完成后,必须进行 Lint 检查,并 **彻底删除无用代码**。禁止提交包含 Lint 错误、格式警告、或残留冗余逻辑的代码。
|
|
|
|
|
|
|
+- **强制清理 (Lint & Cleanup Mandatory)**:每次代码修改完成后,必须进行 Lint 检查,并 **彻底删除无用代码**。禁止提交包含 Lint 错误、格式警告、或残留冗余逻辑的代码。
|
|
|
- **类型安全**:全量使用 TS 接口 (Interface)。
|
|
- **类型安全**:全量使用 TS 接口 (Interface)。
|
|
|
- **全量国际化 (i18n Mandatory)**:**禁止在页面或组件中硬编码任何文本内容**。所有展示给用户的字符串必须通过多语言方案实现,统一在 `locales` 中定义并使用翻译 Hook 调用。
|
|
- **全量国际化 (i18n Mandatory)**:**禁止在页面或组件中硬编码任何文本内容**。所有展示给用户的字符串必须通过多语言方案实现,统一在 `locales` 中定义并使用翻译 Hook 调用。
|
|
|
|
|
|
|
|
## 代码编写原则 (Code Construction Rules)
|
|
## 代码编写原则 (Code Construction Rules)
|
|
|
|
|
|
|
|
-### 1. 通用与风格 (Zero Waste Policy)
|
|
|
|
|
|
|
+### 1. 导入顺序规范 (Import Order Rule)
|
|
|
|
|
+
|
|
|
|
|
+- **必须严格按以下顺序排列,组与组之间空一行:**
|
|
|
|
|
+ - 1、**React 核心**:`react`, `react-dom` 及其 Hooks。
|
|
|
|
|
+ - 2、**第三方库**:如 `lodash`, `ramda`, `antd`, `lucide-react` 等。
|
|
|
|
|
+ - 3、**内部别名 (@/)**:按 `@/defines` -> `@/components` -> `@/hooks` -> `@/utils` -> `@/services` -> `@/assets` 排序。
|
|
|
|
|
+ - 4、**相对路径**:`./` 或 `../` 开头的文件。
|
|
|
|
|
+
|
|
|
|
|
+### 2. 通用与风格 (Zero Waste Policy)
|
|
|
|
|
|
|
|
- **范式**:函数式/声明式编程,**严禁使用 Class**。
|
|
- **范式**:函数式/声明式编程,**严禁使用 Class**。
|
|
|
- **模式**:采用 **RORO** (Receive Object, Return Object) 模式。
|
|
- **模式**:采用 **RORO** (Receive Object, Return Object) 模式。
|
|
@@ -45,7 +53,7 @@ alwaysApply: true
|
|
|
- 分号:**禁止省略分号**。
|
|
- 分号:**禁止省略分号**。
|
|
|
- 条件语句:单行省略花括号 (如 `if (cond) return;`),**禁止使用 else** (改用 Early Return)。
|
|
- 条件语句:单行省略花括号 (如 `if (cond) return;`),**禁止使用 else** (改用 Early Return)。
|
|
|
|
|
|
|
|
-### 2. 组件逻辑拆分规范 (Logic Separation)
|
|
|
|
|
|
|
+### 3. 组件逻辑拆分规范 (Logic Separation)
|
|
|
|
|
|
|
|
为了保持代码的可读性与组织性,必须遵循以下结构规范:
|
|
为了保持代码的可读性与组织性,必须遵循以下结构规范:
|
|
|
|
|
|
|
@@ -62,10 +70,10 @@ alwaysApply: true
|
|
|
└── types.ts (可选)
|
|
└── types.ts (可选)
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-### 3. TypeScript & React & 样式
|
|
|
|
|
|
|
+### 4. TypeScript & React & 样式
|
|
|
|
|
|
|
|
- **图标使用 (Icon Strategy)**:
|
|
- **图标使用 (Icon Strategy)**:
|
|
|
- 1. 将 SVG 放入 `assets/iconify/` 对应目录 (多色图标:multi-color,单色图标:single-color)。
|
|
|
|
|
|
|
+ 1. 将 SVG 放入 `assets/iconify/` 对应目录 (**多色图标:`multi-color`**,**单色图标:`single-color`**)。
|
|
|
2. 代码导入:`import logo from '@/assets/iconify/...';`
|
|
2. 代码导入:`import logo from '@/assets/iconify/...';`
|
|
|
3. 使用:`<Icon icon={logo} />`。
|
|
3. 使用:`<Icon icon={logo} />`。
|
|
|
- **样式与布局规范**:
|
|
- **样式与布局规范**:
|
|
@@ -80,7 +88,7 @@ alwaysApply: true
|
|
|
- **必须使用 Function Components**。
|
|
- **必须使用 Function Components**。
|
|
|
- 最小化 `use client`, `useEffect`, `setState`。
|
|
- 最小化 `use client`, `useEffect`, `setState`。
|
|
|
|
|
|
|
|
-### 4. 错误处理 (Error Handling)
|
|
|
|
|
|
|
+### 5. 错误处理 (Error Handling)
|
|
|
|
|
|
|
|
- **Guard Clauses**:在函数开头处理错误/边缘情况并尽早返回。
|
|
- **Guard Clauses**:在函数开头处理错误/边缘情况并尽早返回。
|
|
|
- **Happy Path**:核心成功逻辑放在函数最底部。
|
|
- **Happy Path**:核心成功逻辑放在函数最底部。
|