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

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

浅读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 开发规范

推荐文章

微信小程序热更新
2024-11-18 15:08:49 +0800 CST
25个实用的JavaScript单行代码片段
2024-11-18 04:59:49 +0800 CST
PHP来做一个短网址(短链接)服务
2024-11-17 22:18:37 +0800 CST
html一份退出酒场的告知书
2024-11-18 18:14:45 +0800 CST
Golang 中你应该知道的 noCopy 策略
2024-11-19 05:40:53 +0800 CST
推荐几个前端常用的工具网站
2024-11-19 07:58:08 +0800 CST
Go 单元测试
2024-11-18 19:21:56 +0800 CST
CSS 媒体查询
2024-11-18 13:42:46 +0800 CST
使用 `nohup` 命令的概述及案例
2024-11-18 08:18:36 +0800 CST
在 Rust 生产项目中存储数据
2024-11-19 02:35:11 +0800 CST
Vue3中如何进行性能优化?
2024-11-17 22:52:59 +0800 CST
Vue3中如何实现插件?
2024-11-18 04:27:04 +0800 CST
四舍五入五成双
2024-11-17 05:01:29 +0800 CST
File 和 Blob 的区别
2024-11-18 23:11:46 +0800 CST
智能视频墙
2025-02-22 11:21:29 +0800 CST
禁止调试前端页面代码
2024-11-19 02:17:33 +0800 CST
程序员茄子在线接单