Cursor rule
.cursor/rules/code.mdc代码编写规范
Cursor rules
Quality
45/100
Scores the file, not the repository.Length
293 words
4 headings · 5 code blocksRepository
273
— · pushed 9 days agoLast changed
3 days ago
First indexed 3 days ago.12345678## 组件格式910```vue11<script setup lang="ts">12import xxx from "xx";1314defineOptions({ name: "Xxx" });1516const ns = useNamespace("xx-xx");17</script>1819<template>20 <div :class="ns.b()"></div>21</template>2223<style scoped lang="scss">24@use "./index";25</style>26```2728```scss29@use "@styles/mixins/bem" as *;3031@include b(xx-xx) {32}33```3435## 带有 props、emits 的写法3637```vue38<script setup lang="ts">39defineOptions({ name: "Demo" });4041// 按照这种写法42interface DemoProps {43 modelValue: string;44}4546// 按照这种写法47interface DemoEmits {48 submit: [value: string];49}5051const props = defineProps<DemoProps>();52const emit = defineEmits<DemoEmits>();5354const ns = useNamespace("login");55</script>5657<template>58 <div></div>59</template>6061<style scoped lang="scss">62@use "./index";63</style>64```6566## 组件里使用 composables6768不推荐 `props`、`emits`、`响应式变量`、`computed`、`watch`、`function`、`生命周期` 的结构写法。6970请使用可复用逻辑(composables)写法,即将关联性高的代码放到 `function useXx` 里然后暴露出来使用。7172```vue73<script setup lang="ts">74import http from "xx";7576defineOptions({ name: "Demo" });7778interface DemoProps {79 params: string;80}8182interface DemoEmits {83 submit: [value: string];84}8586const props = defineProps<DemoProps>();87const emit = defineEmits<DemoEmits>();8889const ns = useNamespace("login");9091const username = ref("");92const password = ref("");9394const { data } = useInitData();9596// 核心请看这个 composables97function useInitData() {98 const data = ref<Recore<string, any>[]>([]);99100 const request = async () => {101 // 请求数据复制给 data102 const result = await http.get(url, props.params);103 data.value = result.data;104 };105106 return { data };107}108</script>109110<template>111 <div :class="ns.b()">112 <input v-model="username" />113 <input v-model="password" />114 </div>115</template>116117<style scoped lang="scss">118@use "./index";119</style>120```121122## 类型引入规范1231241. 先引入所有 `type` 类型(按照导入规范顺序引入,不允许类型和函数的引入混杂在一起)1252. 引入第三方依赖(`Vue` 相关生态优先,如 `vue`、`vue-router`、`pinia`、`vue-i18n`、`@vueuse`,然后是组件库如 `ElementPlus`,`@element-plus/icons-vue`,最后是第三方插件)1263. 引入项目目录的其他依赖(如 `@/composables`,路径按照目录结构顺序引入)1274. 引入项目目录的其他组件(如 `@/components/index.vue`,路径按照目录结构顺序引入)1285. 引入相对路径的依赖(如 `./types`)1296. 引入相对路径的组件(如 `./Demo.vue`)1307. 直接引入第三方库(如 `import "vue-cropper/dist/index.css"`)1318. 直接引入绝对路径(如 `import "@/common/styles/common/var.scss"`)1329. 直接引入相对路径(如 `import "./index.scss"`)133134如:135136```vue137<script setup lang="ts">138import type { xx } from "xx";139import { xx } from "xx";140import { xx } from "@/xx";141import { xx } from "@/xx.vue";142import { xx } from "../xx";143import { xx } from "../xx.vue";144145import "xxx";146import "@/xxx";147import "./xxx";148</script>149```150
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/structure.mdc · 273 | Cursor rules | lint-formattypesgitdocs | 56/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 |
