vue2-code-style
10
总安装量
8
周安装量
#30716
全站排名
安装命令
npx skills add https://github.com/levai/zl-skills --skill vue2-code-style
Agent 安装分布
cursor
5
opencode
2
github-copilot
2
claude-code
2
amp
1
kimi-cli
1
Skill 文档
代ç 飿 ¼è§è
使¶ä½¿ç¨
å¨ç¼åä»»ä½ä»£ç æ¶é½åºéµå¾ªæ¤è§èï¼ç¡®ä¿ä»£ç 飿 ¼ä¸è´ãå¯è¯»æ§å¼ºãæäºç»´æ¤ã
åºæ¬åå
- DRY ååï¼ä¿æä»£ç ç®æ´ãæ¸ æ°ãå¯ç»´æ¤ï¼é¿å éå¤
- 宿´æ§ï¼ä»£ç å¿ é¡»å®æ´ãå¯è¿è¡ï¼ç¦æ¢çå¾ åãå ä½æç¼ºå¤±é¨å
- å¯è¯»æ§ä¼å ï¼ç¡®ä¿ä»£ç æ¸ æ°ãæç»´æ¤
- é¿å è¿åº¦è®¾è®¡ï¼ä» 使ç¨å¿ è¦çåºå模å¼
å½åè§è
æä»¶å½å
- ç»ä»¶æä»¶ï¼PascalCaseï¼å¦
FlowDistributionDlg.vue,AbsWorkbenchView.tsï¼ - å·¥å
·æä»¶ï¼camelCaseï¼å¦
validator.ts,http.tsï¼ - 常éæä»¶ï¼camelCaseï¼å¦
constant.ts,config.tsï¼
代ç å½å
- ç±»/ç»ä»¶/æ¥å£ï¼PascalCaseï¼å¦
AbsDataModelView,IDataModelï¼ - åé/彿°/æ¹æ³ï¼camelCaseï¼å¦
modelName,fetchData()ï¼ - 常éï¼UPPER_SNAKE_CASEï¼å¦
MAX_LENGTH,API_BASE_URLï¼ - ç§ææåï¼camelCaseï¼åç¼
_ï¼å¦_internalStateï¼
代ç ç»ç»
å¯¼å ¥é¡ºåº
// 1. Vue/Vuex ç¸å
³
import { Component } from 'vue-property-decorator'
// 2. ç¬¬ä¸æ¹åº
import { isObject } from '@tdio/utils'
// 3. 项ç®å·¥å
·å½æ°
import { getRule } from '@/utils/validator'
// 4. ç±»åå®ä¹
import type { IDataModel } from '../types'
// 5. ç»ä»¶/è§å¾
import AbsWorkbenchView from '../AbsView'
代ç ç»æ
// 1. è£
饰å¨
@Component({ ... })
export default class ComponentName extends BaseView {
// 2. Props
@Prop() value!: Kv
// 3. Refs
@Ref() formRef!: ElForm
// 4. æ°æ®å±æ§
model: Kv = {}
// 5. 计ç®å±æ§
get computedValue () {
return this.model.value
}
// 6. æ¹æ³
validate () {
// ...
}
// 7. çå½å¨æ
mounted () {
// ...
}
}
注éè§è
ä»£ç æ³¨é
// â
GOOD - è§£é夿é»è¾
// éªè¯æ¨¡ååç§°å¯ä¸æ§ï¼éè¦å¼æ¥è°ç¨æ¥å£
async ruleValRepeatVerify (rule, value: string, callback) {
// ...
}
// â BAD - æ æä¹ç注é
// 设置å¼
setValue (key, value) {
this.$set(this.value, key, value)
}
彿°æ³¨é
// â
GOOD - 夿彿°æ·»å 注é
/**
* çæå¿
å¡«éªè¯è§å
* @param message é误æç¤ºä¿¡æ¯
* @param trigger è§¦åæ¶æºï¼é»è®¤ä¸º 'change'
* @returns éªè¯è§å对象
*/
export const genRequired = (message?: string, trigger?: string): IValidateRuleItem => {
// ...
}
é误å¤ç
// â
GOOD - æç¡®çé误å¤ç
try {
await this.saveData(this.model!)
} catch (error) {
console.error('ä¿å失败:', error)
this.$message.error('ä¿å失败ï¼è¯·éè¯')
throw error
}
// â BAD - 忽ç¥é误
try {
await this.saveData(this.model!)
} catch (e) {}
代ç åæ´æµç¨
- æ¹å¨åå ç®è¿°æ¹æ¡ï¼è¯´æä¿®æ¹å 容ååå
- 䏿¬¡åªæ¹ä¸ä¸ªæä»¶ï¼é¿å 大æç©å¼æäº¤
- ä» ä¿®æ¹ç¸å ³ä»£ç ï¼ä¸è¦å¨æ å ³æä»¶
- æäº¤åæ£æ¥ï¼ç¡®ä¿ä»£ç å¯è¿è¡ï¼æ è¯æ³é误
æä½³å®è·µ
- 使ç¨å·¥å
·å½æ°ï¼å¤ç¨
getRule,genRequiredçå·¥å ·å½æ° - ç±»åå®å ¨ï¼å åå©ç¨ TypeScript ç±»åç³»ç»
- å½é
åï¼ä½¿ç¨
$t()è¿è¡ææ¬å½é å - æ§è½ä¼åï¼é¿å ä¸å¿ è¦ç计ç®å渲æ
- 代ç 审æ¥ï¼æäº¤åè¿è¡èªæå®¡æ¥