Skip to content

👨‍💻 编码规范

代码检测和格式化

  • 代码检测:开发时必须开启ESLint代码检测工具。
  • 代码格式化:开发时必须开启Prettier代码格式化工具。

代码模板和注释

  • 组件模板:A-TEMPLATE文件夹下为常见组件模板,大部分页面应参考该模板代码的风格和使用习惯,以此做到统一风格。
  • 代码片段:项目中的vue.code-snippets文件,已预设了很多Element UI的代码片段,它将会给你带来很多便捷。
  • 注释:
    • 当某段代码量足够多时应该注释其每小段的步骤意图和功能,尽量清晰、简洁。
    • tool.js里的工具函数应填写详细的注释包括:概述其功能、入参数据类型+数据描述、返回的数据类型、步骤意图和功能。

组件单一原则

  • 所有的组件文件应遵循单一原则,即组件应为单一功能,不应融入太多其他业务。
  • 非特殊情况,若文件代码行超过500行时应考虑抽离部分的逻辑来维护。

代码简洁之道

  • 完成业务需求后应该将页面重审一边,将复制时带过来的无用代码如没有用到的变量、函数、样式等删除(非特殊情况)。
  • 强烈安利阅读一遍下面的代码简洁之道(GitHub 87K+ starts 23/12/08)。

变量和函数名命名规范

NOTE

变量和函数名使用小驼峰命名法,类名和组件命名使用大驼峰命名法。

  • 除特殊情况,禁止使用拼音,英文首字母简写或其他不明确表述等命名变量和函数。
  • let/const:变量创建使用let小驼峰命名,常量创建使用const创建并单词使用大写命名。
  • query/get: 获取请求接口数据的函数使用:queryXXX 命名 , getXXX 用于获取非接口的数据。
  • open/close:按钮打开/关闭dialog弹窗或者滑动的组件时使用,如openDialog、openDetail、openExport 等。
  • add/delete/close:分别为添加数据/删除数据/关闭(结案)数据,在单个组件下没有其他的同样操作时,不需写明操作的是xx的数据如(添加产品 addProduct),应使用通用的写法addRow/addData等
  • save:保存按钮命名为 saveEdit/saveData/saveDetial等。在单个组件下没有其他的保存操作时,不需要写明保存的是xx的数据。
  • 英文名缩写参考

样式编写规范

  • 禁止在html代码中使用行内样式编写style,优先考虑使用我们自己制定的全局class变量,类似于tailwind,css原子类在class上写样式。
  • 在使用动态样式时,应优先考虑使用动态class,如根据状态变化颜色 :class="['green', 'red', 'orange'][scope.row.status] 这样会更直观
  • 选择器命名: id (大驼峰) class (小驼峰 "-"拼接) ,可参考BEM架构(BEM是指block、element、modifier的缩写,分别为块层、元素层、修饰符层,element UI 也使用的是这种架构)。
css
<style>
  .block {}

  .block__element {}

  .block--modifier {}
</style>
  • 样式代码编写尽量不嵌套太多层(5层后可读性较差,迁移时成本也比较高)。

Vue编码规范

  • 一般情况,组件初始时获取异步获取数据时应放在created或者mounted这两个生命周期。
  • v-for和v-if不应该写在同一个标签,需过滤数据时可使用computed替代。
js
  computed: {
    filteredData() {
      return this.tableData.filter((item) => !item.disable);
    },
  },

树字标品MES 让智造简单些!