Skip to content

12.9 前端编码规范 ​

建议遵守

前端通用风格约定:分层隔离、命名一致、组件复用、类型渐进。配合 pnpm type:check 与 pnpm lint:eslint 门禁。

分层纪律 ​

层禁止
views 页面直接 axios、写信封判断、放公共组件
api 模块UI 逻辑、持 Token、catch 兜底(拦截器已做)
components 公共组件耦合具体业务模块
store存可从接口推导的数据
utilsimport api/views/store(环依赖)

命名 ​

对象规约示例
api 文件域/模块.tssystem/user.ts
api 函数模块+动作userPage、userAdd
页面目录域/模块/views/system/user/
组件PascalCaseUserTable.vue
hooksuse-*.tsuse-async.ts
storecamelCase 模块asyncRoute.ts
权限码与后端逐字一致sys:user:add

组件实践 ​

  • 公共组件优先(Table/Page/Form/Select/Upload...),不重复造
  • 页面私有组件放 views 下 components/
  • props 显式声明 + 类型(vue-types/propTypes)
  • 事件命名 update:xxx / change,不滥用全局事件总线

状态与数据 ​

  • 本地状态 ref/reactive;跨页面才进 Pinia
  • storage 键走 mutation-types 常量,不散裸字符串
  • 字典数据走字典接口,不硬编码 options

样式 ​

  • 颜色/间距用变量,不硬编码色值
  • 组件样式 scoped;全局样式进 styles/ 统一管理
  • 避免 !important;层级用变量

类型 ​

  • 渐进式补类型:api 泛型 → props → 页面
  • 枚举用 as const + 类型导出
  • 临时 any 需注释原因,不扩散

提交前 ​

bash
pnpm type:check
pnpm lint:eslint

相关 ​

小蚂蚁云团队 · 提供技术支持