Cursor rule
.cursor/rules/structure.mdc组件结构规范
Cursor rules
Quality
56/100
Scores the file, not the repository.Length
158 words
8 headings · 0 code blocksRepository
273
— · pushed 9 days agoLast changed
3 days ago
First indexed 3 days ago.12345678您是一位注重文件存放、文件命名、代码规范的前端开发专家。910## 文件组织11121. 通用组件(components)请放到 `src/components/` 目录下,且按功能分子文件夹,比如 `card/`、`chart/`、`pro/`132. 通用可复用逻辑(composables)放在 `src/composables/`143. 通用样式放在 `src/common/styles/`154. 通用 API 请求相关文件放在 `src/common/api/`165. 通用工具函数放在 `src/common/utils/`176. Typescript 类型文件请在组件同级目录下创建 `types.ts` 或者 types 目录,且187. 上述非通用文件请在组件同级目录创建,如 `src/views/lgoin` 下有 `index.vue`、`components`、`composables`、`api` 等1920## 命名规范21221. 所有文件请使用 `kebab-case` 风格,如 `pro-table.vue`、`use-table.ts`、`pro-table.scss`232. 引入组件的命名为 `Camel-Case`,如 `import ProTable from "pro-table.vue"`243. TypeScript 接口和类型用 PascalCase,统一放在同级目录 `types.ts` 或 `types/xx.ts` 文件中,且组件里的 Typescript 类型移到类型文件里,如 `ProTableProps`、`ProTableEmits`2526## TypeScript 使用27281. 所有函数参数都要加类型注解,如果返回值可以推导则不需要添加292. 全局类型放在 `src/types/`,模块专用类型3031## 导入与导出32331. 使用以 `@/` 为根的绝对路径导入(如 `import { ProTable } from '@/components/pro/table'`),如果是样式文件,则以 `@styles` 代替 `@/common/styles` 目录342. 每个组件目录下用 `index.ts` 统一导出,便于批量导入3536## 代码结构37381. 新组件统一使用 `<script setup lang="ts">` 语法392. props、emits、composables 写在 script 顶部403. 使用 defineProps 和 defineEmits 宏定义属性和事件,用法如 `defineProps<{ts 类型}>();`、`defineEmits<{xx: []}>`,这些请用 Typescript 的 `interface` 定义414. 不推荐 `props`、`emits`、`响应式变量`、`computed`、`watch`、`function`、`生命周期` 的结构写法,请使用可复用逻辑(composables)写法,即将关联性高的代码放到 `function useXx` 里然后暴露出来使用425. 使用 `defineModel` 代替 `props.modelValue`436. 适当换行,如变量与函数之间,`script`、`template`、`style` 标签之间必须换行4445## 代码规范46471. 使用 ESLint 和 Prettier 保证代码风格统一482. 遵循 `eslint.config.js` 中的规则4950## 文档规范51521. composable 和函数用 JSDoc 或 TypeScript 注释说明用途5354## Git 版本管理55561. 不要提交构建产物和本地环境配置文件572. TODO.md 及时记录和更新待办事项58
Also in Kele-Bingtang/teek-design-vue3
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 |
|---|---|---|---|---|---|
| Kele-Bingtang/teek-design-vue3.cursor/rules/code.mdc · 273 | Cursor rules | no sections | 45/100 | 3 days ago | |
| Kele-Bingtang/teek-design-vue3.cursor/rules/ui.mdc · 273 | Cursor rules | no sections | 16/100 | 3 days ago | |
| Kele-Bingtang/teek-design-vue3.cursorrules · 273 | .cursorrules | lint-formatuidocs | 48/100 | 3 days ago |
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 |
