规范:项目、目录、文件、样式、事件、变量、方法、url参数、注释、git提交 命名规范及考证

一、规范命名的重要性

易懂、通用、规范、标准、专业性、是经验积累的体现

1.1、常见命名方法

序号命名方法解释
1全小写
2全大写
3驼峰:小驼峰命名法
4驼峰:大驼峰命名法
5烤串命名法 / 脊柱命名法
6下划线分隔法

二、项目名

采用小写字母和中划线(-)连接的方式命名,如my-project

序号规则举例
1采用小写字母和中划线(-)连接的方式命名my-project

三、目录 / 文件夹

重要:目录架构既要符合前端行业通用规则,又要满足项目的业务架构。层次分明,分工明确,从目录架构反过来能理解整个项目的业务架构。

3.1、整体原则

序号原则解释
1简洁明了命名应简洁明了,能够清晰地表达文件夹/目录的用途或内容。
2一致性在整个项目中保持命名规则的一致性,以便其他开发者能够快速理解和使用。
3小写字母为了避免大小写敏感问题,建议使用小写字母进行命名。
4使用连字符如果文件名包含多个单词,建议使用连字符(-)或下划线(_)进行分隔,但通常连字符在前端项目中更为常见。

3.2、具体规则

序号规则举例
1

采用小驼峰(camelCase)命名法

即第一个单词首字母小写,后续单词首字母大写。

如有复数结构时(此文件夹包含多个子文件夹或文件),可以采用复数命名法,如components、assets

camelCase
2也可以考虑使用小写字母和中划线(-)连接的方式,但这种方式在前端项目中较少见,更多用于文件名或类、ID的命名my-task

3.3、通用命名

序号名称解释
1src包含源代码的文件夹
2components包含Vue组件的文件夹(复数命名)
3assets包含静态资源的文件夹(复数命名)
4utils包含工具函数的文件夹(复数命名)
5views包含路由页面的文件夹(复数命名)

3.4、注意事项

序号事项解释
1避免使用保留字避免使用操作系统或编程语言中的保留字作为文件夹/目录名,以免引起冲突或误解。
2避免使用空格和特殊字符空格和特殊字符可能会在某些环境下导致问题,因此建议使用下划线(_)或中划线(-)作为单词之间的分隔符。
3考虑国际化如果项目需要支持多种语言,命名时应考虑国际化因素,避免使用具有特定文化含义的词汇。

3.5、gitee / github 实例

序号来源 / 项目截图目录分析
1gitee / vue1、小写命名
2、中划线 / '-' 命名
vue: 🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
 2gitee / RuoYi1、小写命名
2、中划线 / '-' 命名
RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
3gitee / element

1、小写命名
2、中划线 / '-' 命名

3、底划线 / '_' 命名

https://gitee.com/ElemeFE/element/tree/dev

四、文件名

4.1、整体规则

同 3.1 整体原则

4.2、具体命名规则

序号规则详细
1组件文件名1、对于Vue、React等框架的组件文件,通常使用小驼峰(camelCase)命名法,但文件名本身(不包括扩展名)往往使用小写字母和连字符(-)连接的方式,以匹配HTML中的class命名习惯。例如,MyComponent.vue在HTML中可能作为<my-component>使用,因此文件名可以命名为my-component.vue。
2、另一个常见的做法是,即使内部组件类名使用小驼峰,文件名也保持小写字母和连字符的形式,如UserProfile.vue的文件名可以命名为user-profile.vue。
2样式文件名样式文件(如CSS、SCSS、LESS等)通常使用小写字母和连字符(-)连接的方式命名,以匹配CSS类名的命名习惯。例如,styles.css、main-layout.scss。
3脚本文件名JavaScript、TypeScript等脚本文件可以使用小写字母和连字符(-)或点(.)连接的方式命名,但点通常用于表示文件类型或模块结构(如utils.js、app.module.ts)。然而,在前端项目中,更常见的做法是使用小驼峰命名法(不包括扩展名),如main.js、app.ts,或者简单的文件名加上扩展名,如index.js。
4图片和媒体文件名1、图片和媒体文件(如PNG、JPG、GIF、SVG等)通常使用小写字母、数字和连字符(-)命名,以描述文件的内容或用途。例如,logo.png、background-image.jpg。
2、对于需要描述多个属性的图片,可以使用连字符分隔属性,如user-profile-avatar.png。
5测试文件名测试文件(如单元测试、集成测试等)通常使用与被测试文件相同的命名规则,但会在文件名后添加.test、.spec或.spec.js等后缀以标识其为测试文件。例如,user-profile.spec.js

4.3、注意事项

序号事项详细
1避免使用保留字避免使用操作系统或编程语言中的保留字作为文件名,以免引起冲突或误解
2避免使用空格空格可能会导致在某些环境下出现问题,因此建议使用连字符(-)或下划线(_)作为单词之间的分隔符
3考虑文件类型文件名应包含文件类型扩展名,以便快速识别文件的类型和内容

4.4、实例

序号来源 / 项目截图目录分析
1gitee / vue

1、小写

2、烤串

vue: 🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. - Gitee.com

2gitee / RuoYi

1、小写

2、驼峰

3、底划线

RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 - Gitee.com

3gitee / element

1、小写

2、烤串

element: Element 是一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,提供了配套设计资源,帮助你的网站快速成型。由饿了么公司前端团队开源。 - Gitee.com

五、CSS 样式

class / id

驼峰、烤串命名、蛇形命名

CSS 命名规范,将省下你大把调试时间 - 知乎

常用CSS的命名规范:_Aiden_xiaoGuo的博客-CSDN博客_css命名规范

六、事件

6.1、handle + 行为描述

考证element-ui

6.2、动词+内容

js事件名称集_aら 淼的博客-CSDN博客_事件名称

https://wenku.baidu.com/view/8fcc71a96b0203d8ce2f0066f5335a8102d2661d.html

更多内容待补充 

七、变量

js命名规范 - 腾讯云开发者社区-腾讯云

https://www.csdn.net/tags/MtjaQg1sMDgwMjMtYmxvZwO0O0OO0O0O.html

JavaScript:变量命名的规范_Argonaut_的博客-CSDN博客_js变量命名规范

js变量命名规范 - 百度文库

八、方法

如 vue method 的方法

JavaScript命名规范_菜鸟_小卡酷谋的博客-CSDN博客_js命名规范

九、url 及 参数

1、URL越短越好

2、避免太多参数

3、目录层级较少

4、具有描述性

5、包含关键词

6、字母全部小写

7、使用连词符

网站URL规范化设计的8个命名规则_目录_文件_字母

URL规范有哪些-SEO-PHP中文网

URL命名规范_风的着点的博客-CSDN博客_url命名规范

url 命名规范_whatday的博客-CSDN博客_url命名规范

URL命名规则 - 百度文库

十、注释

前端:HTML、CSS、JavaScript 代码注释 / 注释与代码规范_html注释-CSDN博客

十一、git 提交

vue3-ts:Commitlint / 规范化Git提交消息格式_commitlint 规范-CSDN博客

十二、欢迎交流指正

遵循命名规则,可以创建一个结构清晰、易于维护的前端项目

十三、参考链接

规范:接口返回的字段命名规范考证_php接口返回驼峰还是下划线-CSDN博客

规范:前端代码开发规范_前端开发规范-CSDN博客

前端代码规范-命名规范-阿里云开发者社区

前端代码命名规范_Tl丶落樱无痕的博客-CSDN博客_前端代码命名规范

Aotu.io - 前端代码规范

概述 | Aotu.io - 前端代码规范

微社区技术规范站

TGideas文档库

GitHub - ecomfe/spec: This repository contains the specifications.

GitHub - standard/standard: 🌟 JavaScript Style Guide, with linter & automatic code fixer

ES6 入门教程

ESLint - 插件化的 JavaScript 代码检测工具 - ESLint中文文档

代码规范 - Apache ECharts

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/2654.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

03-Dubbo的负载均衡及高性能RPC调用

03-Dubbo的负载均衡及高性能RPC调用 Dubbo 的负载均衡策略 负载均衡策略就是当某个服务压力比较大的时候&#xff0c;这时候部署多个节点同时提供相同的服务 当服务消费者来消费的时候&#xff0c;可以从这多个节点中选择一个节点进行消费&#xff0c;这个选择的过程&#xff0…

【LVGL-列表部件 lv_list_create】

LVGL-列表部件 lv_list_create ■ LVGL-列表部件-函数■ 修改样式-■ 修改样式- 背景色■ 修改样式- 改变项的颜色-label■ 修改样式- 改变项的颜色-btn ■ 事件(Event)■ 示例0&#xff1a;综合■ 示例1&#xff08;自动出现滚动&#xff09;■ 示例2&#xff08;滚动捕捉&…

【React】初学React

A. react中如何创建元素呢&#xff1f; 说明一点&#xff1a; 属性都改为驼峰形式&#xff08;无障碍属性aria-*除外&#xff09;&#xff0c; class改成className 创建元素 B. 变量或表达式如何表示呢&#xff1f;大括号{ }包起来 变量值用大括号包裹 C. 元素和组件的区别 元素…

设备搜索相关协议使用

一、实现原理 首先&#xff0c;Client -> Gateway : 发送 UDP 广播包&#xff08;含厂商自定义协议)这一步表示客户端开始向网络中发送一个包含厂商自定义协议的 UDP 广播包&#xff0c;目的是寻找本厂商的设备&#xff08;网关&#xff09;。客户端此时处于活动状态activa…

TMDOG的Gin学习笔记_01——初识Gin框架

TMDOG的Gin学习笔记_01——初识Gin框架 博客地址&#xff1a;[TMDOG的博客](https://blog.tmdog114514.icu) 作者自述&#xff1a; 停更太久了&#xff0c;是因为开学了课太多了&#xff0c;并且我一直在准备上篇文章的内容正在coding&#xff0c;就先搁置了更新博客QAQ&…

H7-TOOL的CAN/CANFD助手增加帧发送成功标识支持, 继续加强完善功能细节

2.27版本固件正式携带此功能&#xff0c;包括之前做的负载率检测和错误信息展示也将集成到这个版本固件中。 对于接收&#xff0c;我们可以直接看到效果&#xff0c;而发送不行&#xff0c;所以打算在发送的地方展示下发送成功标识。CAN发送不像串口&#xff0c;需要等待应答后…

Pr 视频效果:超级键

视频效果/键控/超级键 Keying/Ultra Key 超级键 Ultra Key效果是 Premiere Pro 中功能强大的抠像工具&#xff0c;主要用于绿幕/蓝幕抠像。通过选择要抠除的颜色&#xff08;通常是绿幕或蓝幕的颜色&#xff09;&#xff0c;即可以将该颜色的像素设为透明&#xff0c;实现主体与…

善用Git LFS来降低模型文件对磁盘的占用

将讲一个实际的例子&#xff1a;对于模型文件&#xff0c;动辄就是好几个G&#xff0c;而有的仓库更是高达几十G&#xff0c;拉一个仓库到本地&#xff0c;稍不注意直接磁盘拉满都有可能。 比如&#xff1a;meta-llama-3.1-8b-instruct&#xff0c;拉到本地后发现居然占用了60G…

「树链剖分」学习笔记

一、引入 “在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决&#xff0c;实际上&#xff0c;仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——「树链剖分」。 树链剖分&#xff08;简称树剖&#xff09;&#xff0c;顾名思义&#xf…

Golang--数组、切片、映射

1、数组 1.1 数组类型 var 数组名 [数组大小]数据类型 package main import "fmt"func main(){//1、定义一个数组var arr1 [5]intarr1[0] 100arr1[1] 200fmt.Println(arr1) //[100 200 0 0 0] } 1.2 数组的初始化方式 package main import "fmt" func …

结构体对齐,位段

大家好&#xff0c;今天来给大家分享一些结构体的知识&#xff0c;结构体是我们学习数据结构的基础&#xff0c;只有把它了解清楚才能让我们学习数据结构是得心应手&#xff0c;现在让我们来看看它的一些内容吧。 1.结构体的定义和调用我们就跳过吧 大家如果还不熟悉的话可以去…

ElementUI中el-table双击单元格显示输入框

效果图 实现 <el-table:data"formData.products"row-key"id":show-header"true"style"width: 100%; margin-top: 16px"class"zq-table-theme-info"bordercell-dblclick"handleDbClick"> <el-table-col…

Python OpenCV 图像改变

更改图像数据 通过 改像素点 或者 切片的区域 import cv2 import numpy as np img cv2.imread("image.jpg") print(img[3,5]) # 显示某位置(行3列5)的像素值( 如 [53 34 29] 它是有三通道 B G R 组成) img[3,5] (0,0,255) # 更改该位置的像素…

学习虚幻C++开发日志——定时器

官方文档&#xff1a;虚幻引擎中的Gameplay定时器 | 虚幻引擎 5.5 文档 | Epic Developer Community | Epic Developer Community 定时器 安排在经过一定延迟或一段时间结束后要执行的操作。例如&#xff0c;您可能希望玩家在获取某个能力提升道具后变得无懈可击&#xff0c;…

网络安全设备Bypass功能介绍及分析

网络安全平台厂商往往需要用到一项比较特殊的技术&#xff0c;那就是Bypass&#xff0c;那么到底什么是Bypass呢&#xff0c;Bypass设备又是如何来实现的&#xff1f;下面我就对Bypass技术做一下简单的介绍和说明。 一、 什么是Bypass。 大家知道&#xff0c;网络安全设备一般…

如何更改Android studio的项目存储路径

如果你希望永久更改Android Studio的默认项目保存路径&#xff0c;可以通过以下步骤进行设置&#xff1a; 打开Android Studio&#xff0c;选择“File”菜单下的“Settings”&#xff08;Windows&#xff09;或“Preferences”&#xff08;Mac&#xff09;。在设置窗口中&…

ESP8266 自定义固件烧录-mqtt透传固件

esp8266 mqtt固件配网及使用说明_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV196421G7Xc/?spm_id_from333.999.0.0一、固件介绍 固件为自定义开发的一个适配物联网项目的开源固件&#xff0c;支持网页配网、支持网页mqtt服务器配置、支持主题设置。 方便、快捷、稳…

二十三、Mysql8.0高可用集群架构实战

文章目录 一、MySQL InnoDB Cluster1、基本概述2、集群架构3、搭建一主两从InnoDB集群3.1、 安装3个数据库实例3.2、安装mysqlrouter和安装mysqlshell3.2.1、安装mysql-router3.2.2、安装mysql-shell 3.3、InnoDB Cluster 初始化3.1 参数及权限配置预需求检测3.2 初始化InnoDB …

[OS] mmap() 函数的参数及其作用

参数说明&#xff1a; addr&#xff1a;映射区域的起始地址。如果设置为 0&#xff0c;则由内核自动选择页对齐的地址。length&#xff1a;需要映射的字节数&#xff0c;决定映射的区域大小。prot&#xff1a;映射区域的内存保护属性&#xff0c;如只读、可读写等。这个属性不…

meta-learning based FD论文阅读笔记

[1]Semi-Supervised Temporal Meta-Learning Framework for Wind Turbine Bearing Fault Diagnosis Under Limited Annotation Data 问题背景 the fault data are so scarce that it is time-consuming to acquire a well behaved deep learning modelmuch unlabeled data ca…