Cursor rule
.cursor/rules/project.mdc[object Object]
Cursor rules
Quality
50/100
Scores the file, not the repository.Length
287 words
11 headings · 5 code blocksRepository
0
— · pushed 377 days agoLast changed
3 days ago
First indexed 3 days ago.123456---7description:8globs:9alwaysApply: true10---11# 项目背景1213这是 soybeanjs/soybean-admin-react的源代码仓库,是一个 React 后台管理模板仓库1415- 使用 TypeScript 和 React 开发16- 兼容 React 16 ~ 19 版本17- 遵循 Ant Design 设计规范18- 支持国际化19- 基于 React 18 + TypeScript + Vite 的后台管理系统20- 采用 pnpm monorepo 架构21- 使用文件系统路由,类似 Next.js 的路由系统22- 技术栈:React、TypeScript、Vite、Redux Toolkit、Antd、UnoCSS23- 代码风格遵循 SoybeanJS 官方规范2425## 编码规范2627- 使用 TypeScript 和 React 书写28- 使用函数式组件和 hooks,避免类组件29- 使用提前返回(early returns)提高代码可读性30- 组件名使用大驼峰(PascalCase)31- 属性名使用小驼峰(camelCase)32- 合理使用 React.memo、useMemo 和 useCallback 优化性能33- 所有页面放置于 `src/pages`,每个页面一个文件夹,命名使用小写连字符。34- 公共组件放在 `src/components`,抽象通用性组件优先。35- API 调用统一由 `src/service` 管理,采用 axios 封装。36- 工具函数集中于 `src/utils`。3738## 核心开发原则3940### 1. 严格的类型安全41- 所有代码必须使用 TypeScript42- 避免使用 `any` 类型,优先使用具体类型或泛型43- 为所有函数参数和返回值定义明确的类型44- 使用 `.d.ts` 文件定义全局类型4546### 2. 响应式设计优先47- 所有组件必须考虑移动端适配48- 使用 UnoCSS 进行样式开发49- 遵循移动端优先的设计理念5051### 3. 性能优化52- 使用 React.memo、useMemo、useCallback 优化组件性能53- 路由懒加载,避免首屏加载过慢54- 图片懒加载和压缩优化5556## 文件和目录命名规范5758### 1. 文件和文件夹命名59- **统一使用小写字母 + 连字符(kebab-case)命名**60- 多个单词用连字符 `-` 连接61- 示例:`user-center`、`role-manage`、`global-header`6263### 2. 组件文件命名64- React 组件文件使用 PascalCase 命名65- 页面组件:`index.tsx`66- 动态路由:`[id].tsx`、`[...slug].tsx`67- 布局组件:`layout.tsx`68- 加载组件:`loading.tsx`69- 错误组件:`error.tsx`7071### 3. 变量和函数命名72- **变量和普通函数:camelCase**73```typescript74 const userInfo = {...};75 const getUserInfo = () => {...};76```77- **常量:UPPER_SNAKE_CASE**78```typescript79 const MAX_RETRY_COUNT = 3;80 const API_BASE_URL = 'https://api.example.com';81```82- **类型和接口:PascalCase**83```typescript84 interface UserInfo {85 name: string;86 }87 type ApiResponse<T> = {88 data: T;89 };90```91- **请求函数:以 `fetch` 开头**92```typescript93 const fetchUserList = () => {...};94 const fetchUserById = (id: string) => {...};95```9697### 4. 样式类命名9899- 使用 Tailwind CSS + UnoCSS 配合,避免直接写原生 CSS。100- 原则:能用类写完的 UI 不新建样式文件。101- `class` 顺序遵循结构 > 状态 > 修饰。102- 尽量通过 `theme` 和 `preset` 控制色彩与间距。103- 避免写死颜色、字体,统一使用 token。104- 使用小写字母 + 连字符(kebab-case)105- 遵循 BEM 命名规范106```css107.user-card {108 .user-card__header {109 .user-card__title {110 }111 }112}113```114115> 遵循约定大于配置,尽量避免横跨多个职责的模块。116117
Also in crunl/Xingyu-Frontend
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| crunl/Xingyu-Frontend.cursor/rules/api.mdc · 0 | Cursor rules | api | 45/100 | 3 days ago | |
| crunl/Xingyu-Frontend.cursor/rules/comments.mdc · 0 | Cursor rules | securityapidocs | 46/100 | 3 days ago | |
| crunl/Xingyu-Frontend.cursor/rules/componenting.mdc · 0 | Cursor rules | no sections | 45/100 | 3 days ago | |
| crunl/Xingyu-Frontend.cursor/rules/naming.mdc · 0 | Cursor rules | archtypesapiui | 58/100 | 3 days ago | |
| crunl/Xingyu-Frontend.cursor/rules/reduxing.mdc · 0 | Cursor rules | no sections | 45/100 | 3 days ago | |
| crunl/Xingyu-Frontend.cursor/rules/routing.mdc · 0 | Cursor rules | no sections | 53/100 | 3 days ago | |
| crunl/Xingyu-Frontend.cursor/rules/styling.mdc · 0 | Cursor rules | archui | 54/100 | 3 days ago | |
| crunl/Xingyu-Frontend.cursor/rules/typescript.mdc · 0 | Cursor rules | typesdocs | 42/100 | 3 days ago |
Diff against .cursor/rules/api.mdc Diff against .cursor/rules/comments.mdc Diff against .cursor/rules/componenting.mdc Diff against .cursor/rules/naming.mdc Diff against .cursor/rules/reduxing.mdc Diff against .cursor/rules/routing.mdc Diff against .cursor/rules/styling.mdc Diff against .cursor/rules/typescript.mdc
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 3 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 45 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 3 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 3 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 3 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 45 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 3 days ago |
