前端代码规范-命名规范

命名规则

  • camelCase(小驼峰式命名法 ------ 首字母小写)
  • PascalCase(大驼峰式命名法 ------ 首字母大写)
  • kebab-case(短横线连接式)
  • Snake(下划线连接式)

项目名称

项目名 全部采用小写方式, 以短横线分隔。 例:my-project-name

图像名 全部采用小写方式, 优先选择单个单词命名,多个单词命名以下划线分隔

复制代码
banner_sina.gif
menu_aboutus.gif
menutitle_news.gif
logo_police.gif
logo_national.gif
pic_people.jpg
pic_TV.jpg

HTML 全部采用小写方式, 优先选择单个单词命名,多个单词命名以下划线分隔。

css 全部采用小写方式, 优先选择单个单词命名,多个单词命名以短横线分隔。

JS 全部采用小写方式, 优先选择单个单词命名,多个单词命名以短横线分隔。

上述规则可以快速记忆为"静态文件下划线,编译文件短横线"。

Vue组件命名

1.单文件组件名

文件扩展名为 .vuesingle-file components (单文件组件)。单文件组件名应该始终是单词大写开头 (PascalCase)。

复制代码
MyComponent.vue

2.单例组件名

只拥有单个活跃实例的组件应该以 The 前缀命名,以示其唯一性**。**

这不意味着组件只可用于一个单页面,而是每个页面只使用一次。这些组件永远不接受任何 prop,因为它们是为你的应用定制的。如果你发现有必要添加 prop,那就表明这实际上是一个可复用的组件,只是目前在每个页面里只使用一次。

比如,头部和侧边栏组件几乎在每个页面都会使用,不接受 prop,该组件是专门为该应用所定制的。

复制代码
components
├─ TheHeading.vue
├─ TheSidebar.vue

3.基础组件名

基础组件:不包含业务,独立、具体功能的基础组件,比如日期选择器、模态框等。这类组件作为项目的基础控件,会被大量使用,因此组件的 API 进行过高强度的抽象,可以通过不同配置实现不同的功能。

应用特定样式和约定的基础组件(也就是展示类的、无逻辑的或无状态、不掺杂业务逻辑的组件) 应该全部以一个特定的前缀开头 ------ Base。 基础组件在一个页面内可使用多次,在不同页面内也可复用,是高可复用组件。

复制代码
components
├─ BaseButton.vue
├─ BaseTable.vue
├─ BaseIcon.vue

4.业务组件

业务组件:它不像基础组件只包含某个功能,而是在业务中被多个页面复用的(具有可复用性),它与基础组件的区别是,业务组件只在当前项目中会用到,不具有通用性,而且会包含一些业务,比如数据请求;而基础组件不含业务,在任何项目中都可以使用,功能单一,比如一个具有数据校验功能的输入框。
掺杂了复杂业务的组件(拥有自身 dataprop 的相关处理)即业务组件应该以 Custom 前缀命名。业务组件在一个页面内比如:某个页面内有一个卡片列表,而样式和逻辑跟业务紧密相关的卡片就是业务组件。

复制代码
components
├─ CustomCard.vue

5.紧密耦合的组件名

和父组件紧密耦合的子组件应该以父组件名作为前缀命名。 因为编辑器通常会按字母顺序组织文件,所以这样做可以把相关联的文件排在一起。

复制代码
├─ TodoList.vue
├─ TodoListItem.vue
├─ TodoListItemButton.vue

6.组件名中单词顺序

组件名应该以高级别的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。 因为编辑器通常会按字母顺序组织文件,所以现在组件之间的重要关系一目了然。如下组件主要是用于搜索和设置功能。

代码参数命名

name

组件名应该始终是多个单词,应该始终是 PascalCase 的。 根组件 App 以及 <transition><component> 之类的 Vue 内置组件除外。这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。

prop

在声明 prop 的时候,其命名应该始终使用 camelCase,而在模板和 JSX 中应该始终使用 kebab-case。 我们单纯的遵循每个语言的约定,在 JavaScript 中更自然的是 camelCase。而在 HTML 中则是 kebab-case。

router

Vue Router Path 命名采用 kebab-case 格式。 用 Snake(如:/user_info)或 camelCase(如:/userI

模板中组件

对于绝大多数项目来说,在单文件组件和字符串模板中组件名应该总是 PascalCase 的,但是在 DOM 模板中总是 kebab-case 的

自闭合组件

在单文件组件、字符串模板和 JSX 中没有内容的组件应该是自闭合的------但在 DOM 模板里永远不要这样做。

变量

  • 命名方法:camelCase
  • 命名规范:类型 + 对象描述或属性的方式

常量

  • 命名方法:全部大写下划线分割
  • 命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词

方法

  • 命名方法:camelCase
  • 命名规范:统一使用动词或者动词 + 名词形式
相关推荐
To_OC4 天前
万字解析《JS 语言精粹》之第五章:继承 5 大核心精髓(JS 原型核心)
前端·javascript·代码规范
Coffeeee4 天前
闲聊几句,Android老哥们,你们多久没做技改需求了
android·程序员·代码规范
饼干哥哥4 天前
扣子3.0测评:我让 Codex 和 Claude Code 住同一个桌面,结果它们打架了!
人工智能·开源·代码规范
码哥字节6 天前
为什么 Claude Code 读你的代码库,光靠 embedding 根本不够?
claude·代码规范
kisshyshy8 天前
从递归到迭代,一文吃透二叉树的核心知识与 JavaScript 实现
javascript·算法·代码规范
用户69190268133912 天前
Vibe Coding 开发项目的基本范式
人工智能·设计模式·代码规范
Cosolar12 天前
藏在 Claude Code 里的极致浪漫:完整 187 条 Spinner Verbs 全收录
后端·程序员·代码规范
Mickey86113 天前
MCP 加持下的零代码逆向:全自动化绕过 APP 验签与加密实战
代码规范
专注VB编程开发20年16 天前
WebView2 + HostObject 架构的核心痛点 ——强耦合、同步阻塞、异常连锁、内核绑定
代码规范