编程 总结出30个代码前端代码规范

2024-11-19 07:59:43 +0800 CST views 493

浅读Vue3代码10万行,总结出30个代码规范

本文通过对Vue3及Element-plus等代码库的分析,总结了30个前端代码规范,涵盖目录、模块、组件、事件等方面。这些规范能够提高代码的一致性、可读性和维护性,特别适用于多人协作的项目。

1. 目录和文件命名规范

1.1. 模块命名

采用kebab-case命名方式,以模块-子模块的格式命名,最多不超过2个单词:

  • BAD: compilerCore
  • GOOD: compiler-core, runtime-dom

1.2. 文件夹命名

文件夹命名使用kebab-case,以名词形式命名,功能相似的文件夹使用复数形式结尾:

  • BAD: Components, Hooks
  • GOOD: components, hooks

1.3. 组件文件夹命名

复杂组件拆分为多个子文件夹,子文件夹也以kebab-case命名:

  • BAD: DropdownMenuItem
  • GOOD: dropdown-menu, dropdown-item

1.4. assets目录规范

assets目录用于存放静态资源,命名以复数形式结尾,文件使用kebab-case命名:

  • GOOD:
    - assets
      - images
      - icons
      - styles
    

2. 组件规范

2.1. 组件结构化

组件的文件顺序为:scripttemplatestylescript部分的代码顺序为:propsemitsrefscomputedmethodsevents

2.2. 引号规范

  • HTML/模板中:标签属性使用双引号。
  • JS中:字符串使用单引号。

2.3. 组件名命名规范

  • 组件名称采用kebab-case,保持项目内统一:

    • GOOD: checkbox-button.vue, checkbox-group.vue
  • 组件以描述性单词结尾,重要单词放前面,如search-buttonsearch-input-query

2.4. 子组件命名

子组件应以父组件名为前缀:

  • GOOD: todo-list-item.vue, todo-list-item-button.vue

2.5. 组件Props命名

Props使用lowerCamelCase命名,模板中使用kebab-case

  • BAD:
    <welcome-message greetingText="hi"></welcome-message>
    
  • GOOD:
    <welcome-message greeting-text="hi"></welcome-message>
    

2.6. 组件事件命名规则

事件名使用verb表示操作,或者采用noun-verbverb-noun的形式:

  • GOOD:
    defineEmits(['open-menu', 'state-change', 'before-enter'])
    

2.7. 组件模板属性

每个属性占用一行,提升可读性:

  • BAD:
    <my-component foo="a" bar="b" baz="c"/>
    
  • GOOD:
    <my-component
      foo="a"
      bar="b"
      baz="c"
    />
    

2.8. 复杂表达式提取到computed

避免在模板中使用复杂表达式,复杂逻辑应提取到computed

  • BAD:
    <div :style="{
        height: '30rem',
        transform: `rotateX(${parallax.roll}deg)`,
      }"></div>
    
  • GOOD:
    const cardStyle = computed(() => ({
      height: '30rem',
      transform: `rotateX(${parallax.roll}deg)`,
    }))
    

3. JavaScript 规范

3.1. Boolean 类型变量命名

Boolean 类型的变量使用 ishas 前缀:

  • GOOD: isString, hasFallback

3.2. Boolean 类型方法命名

Boolean 类型方法使用 ishasshould等前缀:

  • GOOD: isTagStartChar, hasPropsChanged, shouldSkipAttr

3.3. 业务方法命名

方法名使用小驼峰命名,前缀为动词,如 createinitget

  • GOOD: createElementWithCodegen, getBookData

3.4. 事件方法命名

交互事件命名以 on 开头,逻辑处理事件以 handle 开头:

  • GOOD: onClick, handleIconClick, handleChange

3.5. 数据请求、处理类方法

数据请求方法以 getfetch 开头,数据提交类方法以 postsendupload 开头:

  • GOOD: getBookData, postBookData

3.6. 类命名

类名使用PascalCase,常用命名规则:

  • GOOD: BaseReactiveHandler, ScriptCompileContext

3.7. 常量命名

常量使用大写字母加下划线的命名方式,通常以复数形式结尾:

  • GOOD: DAYS_IN_WEEK, MONTHS_IN_YEAR

3.8. 枚举命名

枚举名称使用PascalCase,值使用全大写字母加下划线:

  • GOOD:
    export enum ErrorCodes {
      ABRUPT_CLOSING_OF_EMPTY_COMMENT,
      DUPLICATE_ATTRIBUTE,
    }
    

总结

代码规范能提高项目代码的一致性、可读性,尤其在多人协作开发中,保持统一的代码风格能够降低沟通成本。通过合理使用工具如 eslintprettier 来保证代码的规范性,同时保持代码的工匠精神,坚持使用正确的代码风格。

复制全文 生成海报 前端 Vue 开发规范

推荐文章

CSS实现亚克力和磨砂玻璃效果
2024-11-18 01:21:20 +0800 CST
使用Vue 3实现无刷新数据加载
2024-11-18 17:48:20 +0800 CST
Vue3中如何实现响应式数据?
2024-11-18 10:15:48 +0800 CST
Go 并发利器 WaitGroup
2024-11-19 02:51:18 +0800 CST
使用Rust进行跨平台GUI开发
2024-11-18 20:51:20 +0800 CST
GROMACS:一个美轮美奂的C++库
2024-11-18 19:43:29 +0800 CST
Vue 3 是如何实现更好的性能的?
2024-11-19 09:06:25 +0800 CST
mysql关于在使用中的解决方法
2024-11-18 10:18:16 +0800 CST
CentOS 镜像源配置
2024-11-18 11:28:06 +0800 CST
在 Docker 中部署 Vue 开发环境
2024-11-18 15:04:41 +0800 CST
JavaScript设计模式:发布订阅模式
2024-11-18 01:52:39 +0800 CST
Go 如何做好缓存
2024-11-18 13:33:37 +0800 CST
使用 Nginx 获取客户端真实 IP
2024-11-18 14:51:58 +0800 CST
一键压缩图片代码
2024-11-19 00:41:25 +0800 CST
robots.txt 的写法及用法
2024-11-19 01:44:21 +0800 CST
Python上下文管理器:with语句
2024-11-19 06:25:31 +0800 CST
黑客帝国代码雨效果
2024-11-19 01:49:31 +0800 CST
markdowns滚动事件
2024-11-19 10:07:32 +0800 CST
程序员茄子在线接单