dk-frontend-skills 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.json +69 -0
- package/.claude/skills/agentation/SKILL.md +107 -0
- package/.claude/skills/frontend-code-review/SKILL.md +167 -0
- package/.claude/skills/frontend-code-review/references/checklist.md +298 -0
- package/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/.claude/skills/frontend-design/SKILL.md +42 -0
- package/.claude/skills/moai-framework-electron/SKILL.md +328 -0
- package/.claude/skills/skill-creator/SKILL.md +356 -0
- package/.claude/skills/skill-creator/references/output-patterns.md +82 -0
- package/.claude/skills/skill-creator/references/workflows.md +28 -0
- package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/.claude/skills/ui-ux-pro-max/SKILL.md +228 -0
- package/.claude/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/.claude/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/.claude/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/.claude/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/.claude/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.claude/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/.claude/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/.claude/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.claude/skills/ui-ux-pro-max/scripts/core.py +238 -0
- package/.claude/skills/ui-ux-pro-max/scripts/search.py +61 -0
- package/.claude/skills/vue/SKILL.md +103 -0
- package/.claude/skills/vue/references/components.md +323 -0
- package/.claude/skills/vue/references/composables.md +358 -0
- package/.claude/skills/vue/references/directives.md +225 -0
- package/.claude/skills/vue/references/gotchas.md +438 -0
- package/.claude/skills/vue/references/provide-inject.md +174 -0
- package/.claude/skills/vue/references/reactivity.md +289 -0
- package/.claude/skills/vue/references/router.md +181 -0
- package/.claude/skills/vue/references/testing.md +294 -0
- package/.claude/skills/vue/references/typescript.md +172 -0
- package/.claude/skills/vue/references/utils-client.md +156 -0
- package/CLAUDE.md +361 -0
- package/package.json +16 -0
- package/scripts/copy-skills.js +68 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skills": {
|
|
3
|
+
"update-config": {
|
|
4
|
+
"enabled": true
|
|
5
|
+
},
|
|
6
|
+
"keybindings-help": {
|
|
7
|
+
"enabled": true
|
|
8
|
+
},
|
|
9
|
+
"simplify": {
|
|
10
|
+
"enabled": true,
|
|
11
|
+
"description": "Review changed code for reuse, quality, and efficiency"
|
|
12
|
+
},
|
|
13
|
+
"fewer-permission-prompts": {
|
|
14
|
+
"enabled": true
|
|
15
|
+
},
|
|
16
|
+
"loop": {
|
|
17
|
+
"enabled": true,
|
|
18
|
+
"description": "Run a prompt or slash command on a recurring interval"
|
|
19
|
+
},
|
|
20
|
+
"claude-api": {
|
|
21
|
+
"enabled": true,
|
|
22
|
+
"description": "Build, debug, and optimize Claude API / Anthropic SDK apps"
|
|
23
|
+
},
|
|
24
|
+
"agentation": {
|
|
25
|
+
"enabled": true,
|
|
26
|
+
"description": "Agentation visual feedback toolbar for React"
|
|
27
|
+
},
|
|
28
|
+
"frontend-code-review": {
|
|
29
|
+
"enabled": true,
|
|
30
|
+
"description": "前端代码全面审查"
|
|
31
|
+
},
|
|
32
|
+
"frontend-design": {
|
|
33
|
+
"enabled": true,
|
|
34
|
+
"description": "创意前端界面设计,landing page/品牌页/营销页"
|
|
35
|
+
},
|
|
36
|
+
"skill-creator": {
|
|
37
|
+
"enabled": true,
|
|
38
|
+
"description": "Create and update skills"
|
|
39
|
+
},
|
|
40
|
+
"ui-ux-pro-max": {
|
|
41
|
+
"enabled": true,
|
|
42
|
+
"description": "UI/UX design intelligence, 50 styles, 21 palettes"
|
|
43
|
+
},
|
|
44
|
+
"vue": {
|
|
45
|
+
"enabled": true,
|
|
46
|
+
"description": "Vue 3 组件/组合式函数开发,提供 Composition API 最佳实践"
|
|
47
|
+
},
|
|
48
|
+
"init": {
|
|
49
|
+
"enabled": true,
|
|
50
|
+
"description": "Initialize CLAUDE.md with codebase documentation"
|
|
51
|
+
},
|
|
52
|
+
"review": {
|
|
53
|
+
"enabled": true,
|
|
54
|
+
"description": "Pull request review"
|
|
55
|
+
},
|
|
56
|
+
"security-review": {
|
|
57
|
+
"enabled": true,
|
|
58
|
+
"description": "Security review of pending changes"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"always_apply_skills": [
|
|
62
|
+
"simplify",
|
|
63
|
+
"frontend-design",
|
|
64
|
+
"vue",
|
|
65
|
+
"frontend-code-review",
|
|
66
|
+
"ui-ux-pro-max",
|
|
67
|
+
"security-review"
|
|
68
|
+
]
|
|
69
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentation
|
|
3
|
+
description: Add Agentation visual feedback toolbar to any React project
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agentation Setup
|
|
7
|
+
|
|
8
|
+
Set up the Agentation annotation toolbar in this project.
|
|
9
|
+
|
|
10
|
+
## Requirements
|
|
11
|
+
|
|
12
|
+
- React 18+
|
|
13
|
+
- Zero dependencies beyond React
|
|
14
|
+
|
|
15
|
+
## Steps
|
|
16
|
+
|
|
17
|
+
1. **Check if already installed**
|
|
18
|
+
- Look for `agentation` in package.json dependencies
|
|
19
|
+
- If not found, run `npm install agentation` (or pnpm/yarn based on lockfile)
|
|
20
|
+
|
|
21
|
+
2. **Check if already configured**
|
|
22
|
+
- Search for `<Agentation` or `import { Agentation }` in src/ or app/
|
|
23
|
+
- If found, report that Agentation is already set up and exit
|
|
24
|
+
|
|
25
|
+
3. **Detect project type**
|
|
26
|
+
- **Next.js App Router**: has `app/layout.tsx` or `app/layout.js`
|
|
27
|
+
- **Next.js Pages Router**: has `pages/_app.tsx` or `pages/_app.js`
|
|
28
|
+
- **Vite + React**: has `vite.config.ts/js` and `src/main.tsx/jsx`
|
|
29
|
+
- **Create React App**: has `src/index.tsx/jsx` or `src/App.tsx/jsx`
|
|
30
|
+
- **Other React projects**: look for main entry file
|
|
31
|
+
|
|
32
|
+
4. **Add the component**
|
|
33
|
+
|
|
34
|
+
**For Next.js App Router**, add to `app/layout.tsx`:
|
|
35
|
+
```tsx
|
|
36
|
+
import { Agentation } from "agentation";
|
|
37
|
+
|
|
38
|
+
export default function RootLayout({ children }) {
|
|
39
|
+
return (
|
|
40
|
+
<html>
|
|
41
|
+
<body>
|
|
42
|
+
{children}
|
|
43
|
+
{process.env.NODE_ENV === "development" && <Agentation />}
|
|
44
|
+
</body>
|
|
45
|
+
</html>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**For Next.js Pages Router**, add to `pages/_app.tsx`:
|
|
51
|
+
```tsx
|
|
52
|
+
import { Agentation } from "agentation";
|
|
53
|
+
|
|
54
|
+
export default function App({ Component, pageProps }) {
|
|
55
|
+
return (
|
|
56
|
+
<>
|
|
57
|
+
<Component {...pageProps} />
|
|
58
|
+
{process.env.NODE_ENV === "development" && <Agentation />}
|
|
59
|
+
</>
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**For Vite + React**, add to `src/main.tsx`:
|
|
65
|
+
```tsx
|
|
66
|
+
import { Agentation } from "agentation";
|
|
67
|
+
|
|
68
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
69
|
+
<React.StrictMode>
|
|
70
|
+
<App />
|
|
71
|
+
{import.meta.env.DEV && <Agentation />}
|
|
72
|
+
</React.StrictMode>
|
|
73
|
+
);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**For Create React App**, add to `src/index.tsx`:
|
|
77
|
+
```tsx
|
|
78
|
+
import { Agentation } from "agentation";
|
|
79
|
+
|
|
80
|
+
const root = ReactDOM.createRoot(document.getElementById('root'));
|
|
81
|
+
root.render(
|
|
82
|
+
<React.StrictMode>
|
|
83
|
+
<App />
|
|
84
|
+
{process.env.NODE_ENV === "development" && <Agentation />}
|
|
85
|
+
</React.StrictMode>
|
|
86
|
+
);
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**For other React projects**, add to the root component or main entry file:
|
|
90
|
+
```tsx
|
|
91
|
+
import { Agentation } from "agentation";
|
|
92
|
+
|
|
93
|
+
// Add at the end of your root component
|
|
94
|
+
{process.env.NODE_ENV === "development" && <Agentation />}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
5. **Confirm setup**
|
|
98
|
+
- Tell the user to run their dev server and look for the Agentation toolbar (floating button in bottom-right corner)
|
|
99
|
+
- The toolbar should appear in the bottom-right corner of the page
|
|
100
|
+
|
|
101
|
+
## Notes
|
|
102
|
+
|
|
103
|
+
- The environment check ensures Agentation only loads in development
|
|
104
|
+
- For Vite projects, use `import.meta.env.DEV` instead of `process.env.NODE_ENV`
|
|
105
|
+
- For Next.js, use `process.env.NODE_ENV === "development"`
|
|
106
|
+
- No additional configuration needed — it works out of the box
|
|
107
|
+
- Compatible with any React 18+ project
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-code-review
|
|
3
|
+
description: 当用户需要对前端代码进行全面审查时使用此技能,包括 React、Vue、Angular 或原生 JavaScript/TypeScript 项目。适用于代码审查、Pull Request 评审、性能审计、安全检查等场景。
|
|
4
|
+
license: MIT
|
|
5
|
+
author: Bamzc
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 前端代码审查技能
|
|
9
|
+
|
|
10
|
+
## 技能用途
|
|
11
|
+
|
|
12
|
+
对前端代码进行系统化审查,涵盖代码质量、性能、安全、可访问性等多个维度。支持 React、Vue、Angular 和原生 JavaScript/TypeScript 项目。
|
|
13
|
+
|
|
14
|
+
## 审查工作流程
|
|
15
|
+
|
|
16
|
+
### 第一步:识别项目类型和范围
|
|
17
|
+
|
|
18
|
+
执行以下识别工作:
|
|
19
|
+
|
|
20
|
+
1. 确定框架类型(React、Vue、Angular、原生 JS/TS)
|
|
21
|
+
2. 评估代码规模(单组件、功能模块、完整应用)
|
|
22
|
+
3. 检查明显的语法错误、格式问题或导入错误
|
|
23
|
+
|
|
24
|
+
### 第二步:多维度系统审查
|
|
25
|
+
|
|
26
|
+
按照以下维度逐一审查代码:
|
|
27
|
+
|
|
28
|
+
**代码质量**
|
|
29
|
+
- 检查命名是否语义化且一致
|
|
30
|
+
- 识别代码重复和可重构的机会
|
|
31
|
+
- 确认函数/组件是否遵循单一职责原则
|
|
32
|
+
- 评估文件组织和模块结构的合理性
|
|
33
|
+
|
|
34
|
+
**功能实现**
|
|
35
|
+
- 验证业务逻辑正确性
|
|
36
|
+
- 检查边界情况和错误处理
|
|
37
|
+
- 审查异步操作处理(Promise、async/await)
|
|
38
|
+
- 确认加载状态和错误状态的用户反馈机制
|
|
39
|
+
|
|
40
|
+
**性能优化**
|
|
41
|
+
- 识别不必要的组件重渲染
|
|
42
|
+
- 检查列表渲染的 key 使用是否正确
|
|
43
|
+
- 评估对打包体积的影响
|
|
44
|
+
- 审查图片优化策略(格式、懒加载、响应式)
|
|
45
|
+
- 检查网络请求效率(缓存、去重、防抖节流)
|
|
46
|
+
|
|
47
|
+
**安全性**
|
|
48
|
+
- 检测 XSS 漏洞(未转义输入、dangerouslySetInnerHTML 使用)
|
|
49
|
+
- 验证输入验证和数据清洗
|
|
50
|
+
- 审查敏感数据处理(localStorage、API 令牌)
|
|
51
|
+
- 检查 CSRF 保护机制
|
|
52
|
+
- 评估第三方依赖的安全风险
|
|
53
|
+
|
|
54
|
+
**可访问性 (a11y)**
|
|
55
|
+
- 检查语义化 HTML 的使用
|
|
56
|
+
- 验证 ARIA 属性的正确性
|
|
57
|
+
- 测试键盘导航支持
|
|
58
|
+
- 检查颜色对比度
|
|
59
|
+
- 确认图片 alt 文本和表单 label
|
|
60
|
+
|
|
61
|
+
**框架特定模式**
|
|
62
|
+
|
|
63
|
+
*React:*
|
|
64
|
+
- 检查 Hook 使用(useEffect 依赖数组、自定义 Hook 设计)
|
|
65
|
+
- 识别闭包陷阱
|
|
66
|
+
- 验证受控与非受控组件的正确使用
|
|
67
|
+
- 评估 Context 使用的适当性
|
|
68
|
+
- 审查状态管理设计(本地 vs 全局)
|
|
69
|
+
|
|
70
|
+
*Vue 3 Composition API:*
|
|
71
|
+
- 检查 ref/reactive 使用是否合理
|
|
72
|
+
- 验证 computed/watch 使用是否正确
|
|
73
|
+
- 评估组件通信方式(props/emit/provide/inject)
|
|
74
|
+
- 检查生命周期钩子使用
|
|
75
|
+
- 审查组合函数(Composables)抽取是否合理
|
|
76
|
+
|
|
77
|
+
*TypeScript:*
|
|
78
|
+
- 验证类型定义的准确性和完整性
|
|
79
|
+
- 识别 `any` 类型的过度使用
|
|
80
|
+
- 检查泛型使用的合理性
|
|
81
|
+
- 评估接口/类型的可复用性
|
|
82
|
+
|
|
83
|
+
**浏览器兼容性**
|
|
84
|
+
- 检查目标浏览器支持的特性
|
|
85
|
+
- 验证 CSS 供应商前缀
|
|
86
|
+
- 评估 polyfill 必要性
|
|
87
|
+
- 审查响应式设计实现
|
|
88
|
+
|
|
89
|
+
### 第三步:生成结构化报告
|
|
90
|
+
|
|
91
|
+
使用以下格式输出审查结果:
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
## 🔍 代码审查报告
|
|
95
|
+
|
|
96
|
+
### 文件:[文件路径]
|
|
97
|
+
|
|
98
|
+
#### ✅ 优秀实践
|
|
99
|
+
|
|
100
|
+
列出代码中做得好的地方:
|
|
101
|
+
- 优雅的解决方案
|
|
102
|
+
- 良好的设计模式
|
|
103
|
+
- 清晰的代码结构
|
|
104
|
+
- 周到的抽象设计
|
|
105
|
+
|
|
106
|
+
#### ⚠️ 需要改进的问题
|
|
107
|
+
|
|
108
|
+
| 类别 | 问题描述 | 改进建议 | 严重程度 |
|
|
109
|
+
|------|---------|---------|----------|
|
|
110
|
+
| 性能 | [具体问题] | [改进方案] | 🔴 高 / 🟡 中 / 🟢 低 |
|
|
111
|
+
|
|
112
|
+
#### 📊 代码评分
|
|
113
|
+
|
|
114
|
+
> ### 🎯 综合评分:X.X / 10
|
|
115
|
+
> **等级:[🏆S/🥇A/🥈B/🥉C/⚠️D/❌F]([等级描述])** | **状态:[✅可直接上线/⚠️需修复后上线/❌需要重构]**
|
|
116
|
+
|
|
117
|
+
| 维度 | 得分 | 评价 |
|
|
118
|
+
|------|------|------|
|
|
119
|
+
| 代码质量 | X/10 | [简要评价] |
|
|
120
|
+
| 功能实现 | X/10 | [简要评价] |
|
|
121
|
+
| 性能优化 | X/10 | [简要评价] |
|
|
122
|
+
| 安全性 | X/10 | [简要评价] |
|
|
123
|
+
| 可访问性 | X/10 | [简要评价] |
|
|
124
|
+
|
|
125
|
+
**主要扣分项**:[具体说明扣分原因]
|
|
126
|
+
|
|
127
|
+
#### 📝 改进建议
|
|
128
|
+
|
|
129
|
+
- **优先修复**:[关键问题列表]
|
|
130
|
+
- **后续优化**:[可选改进方向]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**评分等级标准:**
|
|
134
|
+
|
|
135
|
+
| 等级 | 分数范围 | 状态 | 含义 |
|
|
136
|
+
|------|----------|------|------|
|
|
137
|
+
| 🏆 S | 9.5-10 | ✅ 可直接上线 | 卓越,可作为最佳实践范本 |
|
|
138
|
+
| 🥇 A | 8.5-9.4 | ✅ 可直接上线 | 优秀,生产级代码 |
|
|
139
|
+
| 🥈 B | 7.0-8.4 | ⚠️ 修复后上线 | 良好,少量问题需修复 |
|
|
140
|
+
| 🥉 C | 5.5-6.9 | ⚠️ 修复后上线 | 一般,需要认真修复优化 |
|
|
141
|
+
| ⚠️ D | 4.0-5.4 | ❌ 需要重构 | 较差,建议较大范围重构 |
|
|
142
|
+
| ❌ F | < 4.0 | ❌ 需要重构 | 不合格,建议重写 |
|
|
143
|
+
|
|
144
|
+
**严重程度定义:**
|
|
145
|
+
- 🔴 高:安全漏洞、严重 bug、崩溃风险 → 必须修复
|
|
146
|
+
- 🟡 中:性能问题、代码规范、可维护性 → 建议修复
|
|
147
|
+
- 🟢 低:代码风格、优化建议 → 可选改进
|
|
148
|
+
|
|
149
|
+
### 第四步:积极认可优秀实践
|
|
150
|
+
|
|
151
|
+
在报告中突出强调:
|
|
152
|
+
- 优雅的解决方案和设计模式
|
|
153
|
+
- 良好的编码实践
|
|
154
|
+
- 结构清晰的代码组织
|
|
155
|
+
- 周到的抽象和封装
|
|
156
|
+
|
|
157
|
+
## 审查深度调整策略
|
|
158
|
+
|
|
159
|
+
根据以下因素调整审查深度和重点:
|
|
160
|
+
|
|
161
|
+
- **代码规模**:小改动快速审查核心问题,大功能进行全面深度审查
|
|
162
|
+
- **代码上下文**:生产环境代码采用严格标准,原型代码可适度宽容
|
|
163
|
+
- **时间限制**:时间紧张时按优先级审查(安全 > 性能 > 规范 > 风格)
|
|
164
|
+
|
|
165
|
+
## 补充资源
|
|
166
|
+
|
|
167
|
+
详细的审查检查清单和工具推荐请参考 `references/checklist.md`。
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# 前端代码审查详细检查清单
|
|
2
|
+
|
|
3
|
+
## 快速评估清单
|
|
4
|
+
|
|
5
|
+
### 项目识别
|
|
6
|
+
- [ ] 框架类型:React / Vue / Angular / 原生 JS/TS
|
|
7
|
+
- [ ] 项目规模:单组件 / 功能模块 / 完整应用
|
|
8
|
+
- [ ] 无明显语法错误
|
|
9
|
+
- [ ] 无明显导入错误
|
|
10
|
+
- [ ] 无明显格式问题
|
|
11
|
+
|
|
12
|
+
## 代码质量检查清单
|
|
13
|
+
|
|
14
|
+
### 命名规范
|
|
15
|
+
- [ ] 变量命名语义化且一致
|
|
16
|
+
- [ ] 函数命名清晰表达意图
|
|
17
|
+
- [ ] 组件命名遵循框架约定
|
|
18
|
+
- [ ] 常量使用大写下划线命名
|
|
19
|
+
- [ ] 布尔值命名使用 is/has/should 前缀
|
|
20
|
+
|
|
21
|
+
### 代码结构
|
|
22
|
+
- [ ] 无明显代码重复(DRY 原则)
|
|
23
|
+
- [ ] 函数长度合理(<50 行为佳)
|
|
24
|
+
- [ ] 组件职责单一(单一职责原则)
|
|
25
|
+
- [ ] 文件组织清晰合理
|
|
26
|
+
- [ ] 导入语句分组有序
|
|
27
|
+
|
|
28
|
+
### 注释质量
|
|
29
|
+
- [ ] 关键逻辑有清晰注释
|
|
30
|
+
- [ ] 注释内容准确且时效
|
|
31
|
+
- [ ] 无冗余或过时注释
|
|
32
|
+
- [ ] 复杂算法有说明文档
|
|
33
|
+
|
|
34
|
+
## 功能实现检查清单
|
|
35
|
+
|
|
36
|
+
### 业务逻辑
|
|
37
|
+
- [ ] 业务逻辑实现正确
|
|
38
|
+
- [ ] 数据流向清晰可追踪
|
|
39
|
+
- [ ] 状态更新符合预期
|
|
40
|
+
- [ ] 副作用处理恰当
|
|
41
|
+
|
|
42
|
+
### 错误处理
|
|
43
|
+
- [ ] 边界情况已处理
|
|
44
|
+
- [ ] 异常情况有捕获
|
|
45
|
+
- [ ] 错误信息对用户友好
|
|
46
|
+
- [ ] 错误日志记录完善
|
|
47
|
+
|
|
48
|
+
### 异步操作
|
|
49
|
+
- [ ] Promise 使用正确
|
|
50
|
+
- [ ] async/await 使用恰当
|
|
51
|
+
- [ ] 异步错误已捕获
|
|
52
|
+
- [ ] 竞态条件已处理
|
|
53
|
+
- [ ] 加载状态有反馈
|
|
54
|
+
|
|
55
|
+
### 用户反馈
|
|
56
|
+
- [ ] 加载状态有展示
|
|
57
|
+
- [ ] 错误状态有提示
|
|
58
|
+
- [ ] 成功操作有反馈
|
|
59
|
+
- [ ] 空状态有占位
|
|
60
|
+
|
|
61
|
+
## 性能优化检查清单
|
|
62
|
+
|
|
63
|
+
### 渲染优化
|
|
64
|
+
- [ ] 无不必要的组件重渲染
|
|
65
|
+
- [ ] 列表渲染使用正确的 key
|
|
66
|
+
- [ ] 大列表使用虚拟滚动
|
|
67
|
+
- [ ] 条件渲染使用恰当
|
|
68
|
+
- [ ] 使用 memo/useMemo/useCallback(React)
|
|
69
|
+
- [ ] 使用 computed/watch(Vue)
|
|
70
|
+
|
|
71
|
+
### 资源优化
|
|
72
|
+
- [ ] 图片格式选择合理(WebP/AVIF 优先)
|
|
73
|
+
- [ ] 图片尺寸适配屏幕
|
|
74
|
+
- [ ] 图片懒加载实现
|
|
75
|
+
- [ ] 大型资源按需加载
|
|
76
|
+
- [ ] 无冗余依赖引入
|
|
77
|
+
|
|
78
|
+
### 网络优化
|
|
79
|
+
- [ ] API 请求有缓存策略
|
|
80
|
+
- [ ] 避免重复请求
|
|
81
|
+
- [ ] 使用防抖节流
|
|
82
|
+
- [ ] 数据预加载恰当
|
|
83
|
+
- [ ] 使用 HTTP/2 多路复用
|
|
84
|
+
|
|
85
|
+
### 打包优化
|
|
86
|
+
- [ ] 代码分割合理
|
|
87
|
+
- [ ] Tree-shaking 生效
|
|
88
|
+
- [ ] 无冗余第三方库
|
|
89
|
+
- [ ] 打包体积在合理范围
|
|
90
|
+
|
|
91
|
+
## 安全性检查清单
|
|
92
|
+
|
|
93
|
+
### XSS 防护
|
|
94
|
+
- [ ] 用户输入已转义
|
|
95
|
+
- [ ] dangerouslySetInnerHTML 使用谨慎
|
|
96
|
+
- [ ] URL 参数已验证
|
|
97
|
+
- [ ] 动态内容已净化
|
|
98
|
+
|
|
99
|
+
### 数据安全
|
|
100
|
+
- [ ] 输入验证完善
|
|
101
|
+
- [ ] 敏感数据不存 localStorage
|
|
102
|
+
- [ ] API 令牌安全存储
|
|
103
|
+
- [ ] 密码不明文传输
|
|
104
|
+
- [ ] 表单数据有验证
|
|
105
|
+
|
|
106
|
+
### CSRF 防护
|
|
107
|
+
- [ ] 关键操作有 CSRF token
|
|
108
|
+
- [ ] 跨域请求有验证
|
|
109
|
+
- [ ] Cookie 设置 SameSite
|
|
110
|
+
|
|
111
|
+
### 依赖安全
|
|
112
|
+
- [ ] 第三方依赖无已知漏洞
|
|
113
|
+
- [ ] 依赖版本定期更新
|
|
114
|
+
- [ ] 使用可信赖的库
|
|
115
|
+
|
|
116
|
+
## 可访问性检查清单
|
|
117
|
+
|
|
118
|
+
### 语义化 HTML
|
|
119
|
+
- [ ] 使用正确的 HTML 标签
|
|
120
|
+
- [ ] 表单元素有关联 label
|
|
121
|
+
- [ ] 按钮使用 button 标签
|
|
122
|
+
- [ ] 链接使用 a 标签
|
|
123
|
+
|
|
124
|
+
### ARIA 支持
|
|
125
|
+
- [ ] ARIA 属性使用正确
|
|
126
|
+
- [ ] role 属性使用恰当
|
|
127
|
+
- [ ] aria-label 描述清晰
|
|
128
|
+
- [ ] aria-hidden 使用合理
|
|
129
|
+
|
|
130
|
+
### 键盘导航
|
|
131
|
+
- [ ] 所有交互元素可键盘访问
|
|
132
|
+
- [ ] Tab 顺序符合逻辑
|
|
133
|
+
- [ ] 焦点状态清晰可见
|
|
134
|
+
- [ ] 快捷键不冲突
|
|
135
|
+
|
|
136
|
+
### 视觉辅助
|
|
137
|
+
- [ ] 颜色对比度 >= 4.5:1
|
|
138
|
+
- [ ] 图片有 alt 文本
|
|
139
|
+
- [ ] 图标有文字说明
|
|
140
|
+
- [ ] 字体大小可调整
|
|
141
|
+
|
|
142
|
+
## 框架特定检查清单
|
|
143
|
+
|
|
144
|
+
### React 检查项
|
|
145
|
+
|
|
146
|
+
#### Hooks 使用
|
|
147
|
+
- [ ] useEffect 依赖数组完整
|
|
148
|
+
- [ ] 无 Hook 调用顺序问题
|
|
149
|
+
- [ ] 自定义 Hook 命名以 use 开头
|
|
150
|
+
- [ ] 无闭包陷阱问题
|
|
151
|
+
|
|
152
|
+
#### 组件设计
|
|
153
|
+
- [ ] 受控/非受控组件使用正确
|
|
154
|
+
- [ ] Props 类型定义完整
|
|
155
|
+
- [ ] Context 使用恰当(非过度使用)
|
|
156
|
+
- [ ] 组件拆分合理
|
|
157
|
+
|
|
158
|
+
#### 状态管理
|
|
159
|
+
- [ ] 本地状态 vs 全局状态选择合理
|
|
160
|
+
- [ ] 状态提升恰当
|
|
161
|
+
- [ ] 状态更新不可变
|
|
162
|
+
- [ ] 派生状态使用 useMemo
|
|
163
|
+
|
|
164
|
+
### Vue 3 检查项
|
|
165
|
+
|
|
166
|
+
#### Composition API
|
|
167
|
+
- [ ] ref/reactive 使用合理
|
|
168
|
+
- [ ] computed 无副作用
|
|
169
|
+
- [ ] watch 使用正确
|
|
170
|
+
- [ ] watchEffect 使用恰当
|
|
171
|
+
|
|
172
|
+
#### 组件通信
|
|
173
|
+
- [ ] props/emit 使用规范
|
|
174
|
+
- [ ] provide/inject 使用恰当
|
|
175
|
+
- [ ] v-model 自定义组件实现正确
|
|
176
|
+
- [ ] 事件命名遵循 kebab-case
|
|
177
|
+
|
|
178
|
+
#### 生命周期
|
|
179
|
+
- [ ] onMounted/onUnmounted 使用正确
|
|
180
|
+
- [ ] 无内存泄漏(事件监听器清理)
|
|
181
|
+
- [ ] 异步操作在正确的生命周期执行
|
|
182
|
+
|
|
183
|
+
#### Composables
|
|
184
|
+
- [ ] 组合函数职责单一
|
|
185
|
+
- [ ] 返回值结构清晰
|
|
186
|
+
- [ ] 副作用有清理
|
|
187
|
+
- [ ] 命名以 use 开头
|
|
188
|
+
|
|
189
|
+
### TypeScript 检查项
|
|
190
|
+
|
|
191
|
+
#### 类型定义
|
|
192
|
+
- [ ] 类型定义准确完整
|
|
193
|
+
- [ ] 避免过度使用 any
|
|
194
|
+
- [ ] interface/type 使用恰当
|
|
195
|
+
- [ ] 泛型使用合理
|
|
196
|
+
|
|
197
|
+
#### 类型安全
|
|
198
|
+
- [ ] 无类型断言滥用
|
|
199
|
+
- [ ] 类型守卫使用正确
|
|
200
|
+
- [ ] 联合类型处理完整
|
|
201
|
+
- [ ] 可选链使用恰当
|
|
202
|
+
|
|
203
|
+
#### 类型复用
|
|
204
|
+
- [ ] 类型定义可复用
|
|
205
|
+
- [ ] 工具类型使用恰当
|
|
206
|
+
- [ ] 类型导入导出规范
|
|
207
|
+
|
|
208
|
+
## 浏览器兼容性检查清单
|
|
209
|
+
|
|
210
|
+
### 特性支持
|
|
211
|
+
- [ ] 目标浏览器支持所用 API
|
|
212
|
+
- [ ] CSS 特性有浏览器兼容
|
|
213
|
+
- [ ] ES 特性有 polyfill(如需)
|
|
214
|
+
- [ ] Flexbox/Grid 使用有降级
|
|
215
|
+
|
|
216
|
+
### CSS 兼容
|
|
217
|
+
- [ ] 供应商前缀已添加(或使用 autoprefixer)
|
|
218
|
+
- [ ] 渐进增强策略
|
|
219
|
+
- [ ] 降级方案完善
|
|
220
|
+
|
|
221
|
+
### 响应式设计
|
|
222
|
+
- [ ] 移动端适配良好
|
|
223
|
+
- [ ] 断点设置合理
|
|
224
|
+
- [ ] 触摸事件处理正确
|
|
225
|
+
- [ ] 视口设置恰当
|
|
226
|
+
|
|
227
|
+
## 常用审查工具推荐
|
|
228
|
+
|
|
229
|
+
### 代码质量工具
|
|
230
|
+
|
|
231
|
+
| 工具 | 用途 | 推荐场景 |
|
|
232
|
+
|------|------|----------|
|
|
233
|
+
| ESLint | 代码质量和风格检查 | 所有项目必备 |
|
|
234
|
+
| Prettier | 代码格式化 | 团队协作项目 |
|
|
235
|
+
| TypeScript | 类型安全检查 | 中大型项目 |
|
|
236
|
+
| Stylelint | CSS/SCSS 代码检查 | 样式代码较多的项目 |
|
|
237
|
+
|
|
238
|
+
### 性能分析工具
|
|
239
|
+
|
|
240
|
+
| 工具 | 用途 | 推荐场景 |
|
|
241
|
+
|------|------|----------|
|
|
242
|
+
| Lighthouse | 性能、可访问性、SEO 审计 | 正式发布前检查 |
|
|
243
|
+
| Chrome DevTools Performance | 运行时性能分析 | 性能优化阶段 |
|
|
244
|
+
| Webpack Bundle Analyzer | 打包体积分析 | 打包优化阶段 |
|
|
245
|
+
| React DevTools Profiler | React 渲染性能分析 | React 性能优化 |
|
|
246
|
+
| Vue DevTools Performance | Vue 组件性能分析 | Vue 性能优化 |
|
|
247
|
+
|
|
248
|
+
### 可访问性工具
|
|
249
|
+
|
|
250
|
+
| 工具 | 用途 | 推荐场景 |
|
|
251
|
+
|------|------|----------|
|
|
252
|
+
| axe DevTools | 可访问性自动检测 | 可访问性审查 |
|
|
253
|
+
| WAVE | 网页可访问性评估 | 快速可访问性检查 |
|
|
254
|
+
| Lighthouse a11y | 可访问性评分 | 综合审查 |
|
|
255
|
+
|
|
256
|
+
### 安全检查工具
|
|
257
|
+
|
|
258
|
+
| 工具 | 用途 | 推荐场景 |
|
|
259
|
+
|------|------|----------|
|
|
260
|
+
| npm audit | 依赖漏洞扫描 | 定期安全检查 |
|
|
261
|
+
| Snyk | 依赖安全分析 | CI/CD 集成 |
|
|
262
|
+
| OWASP ZAP | Web 应用安全测试 | 安全审计 |
|
|
263
|
+
|
|
264
|
+
### 类型检查工具
|
|
265
|
+
|
|
266
|
+
| 工具 | 用途 | 推荐场景 |
|
|
267
|
+
|------|------|----------|
|
|
268
|
+
| TypeScript | 静态类型检查 | TypeScript 项目 |
|
|
269
|
+
| Flow | JavaScript 类型检查 | Flow 项目 |
|
|
270
|
+
| Prop-Types | React 运行时类型检查 | 非 TypeScript React 项目 |
|
|
271
|
+
|
|
272
|
+
## 审查优先级指南
|
|
273
|
+
|
|
274
|
+
### 时间充裕(全面审查)
|
|
275
|
+
1. 安全性检查(必须)
|
|
276
|
+
2. 功能实现检查(必须)
|
|
277
|
+
3. 性能优化检查(重要)
|
|
278
|
+
4. 代码质量检查(重要)
|
|
279
|
+
5. 可访问性检查(推荐)
|
|
280
|
+
6. 浏览器兼容性检查(推荐)
|
|
281
|
+
7. 代码风格检查(可选)
|
|
282
|
+
|
|
283
|
+
### 时间紧张(快速审查)
|
|
284
|
+
1. 安全性:XSS、输入验证、敏感数据
|
|
285
|
+
2. 功能:业务逻辑、错误处理
|
|
286
|
+
3. 性能:明显的性能问题
|
|
287
|
+
4. 代码质量:严重的代码异味
|
|
288
|
+
|
|
289
|
+
### 不同场景优先级
|
|
290
|
+
|
|
291
|
+
**生产环境代码:**
|
|
292
|
+
安全 > 功能 > 性能 > 质量 > 可访问性 > 风格
|
|
293
|
+
|
|
294
|
+
**原型/MVP:**
|
|
295
|
+
功能 > 安全 > 性能 > 其他
|
|
296
|
+
|
|
297
|
+
**开源项目:**
|
|
298
|
+
质量 > 功能 > 安全 > 可访问性 > 性能 > 风格
|