规范:项目、目录、文件、样式、事件、变量、方法、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.mzph.cn/web/58133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Navicat 连接远程腾讯云服务器的MySQL数据库

首先需要开放开放腾讯云安全端口&#xff0c;可以参考这个链接腾讯云服务器入站规则端口开放使用指南(CentOS系统)。 但是注意需要开放的是IPv6&#xff0c;这个可以通过netstat命令查看确认。 然后查看当前用户信息 select user, host from mysql.user一般看到的都是 localh…

第三十四篇:URL和URI的区别,HTTP系列一

前面我们讲到通过TCP协议通信双方建立可靠连接&#xff0c;那么此时双方进行通信&#xff0c;需要用人能理解的形式进行信息组织&#xff0c;也就是为各种特定需求服务&#xff0c;满足日常生活中的各种场景。 比如&#xff1a;网页浏览、电子邮件、远程登录、文件传输、网络管…

什么情况下,不推荐建立索引?

一般有以下几种情况不推荐建立索引&#xff1a; 1&#xff09;对于数据量很小的表 当表的数据量很小&#xff08;如几百条记录&#xff09;时&#xff0c;建立索引并不会显著提高查询性能&#xff0c;反而可能增加管理的复杂性&#xff1b; 2&#xff09;频繁更新的表 对于…

GitHub上传自己的项目

目录 一、安装Git插件 1&#xff09;下载 2&#xff09;安装 二、创建Gothub的创库 三、通过Git上传本地文件到Github 四、其他 1、部分指令 2、如果已经运行过git init并设置了[user]&#xff0c;下次可以直接用 一、安装Git插件 1&#xff09;下载 下载地址&#x…

「Mac畅玩鸿蒙与硬件26」UI互动应用篇3 - 倒计时和提醒功能实现

本篇将带领你实现一个倒计时和提醒功能的应用&#xff0c;用户可以设置倒计时时间并开始计时。当倒计时结束时&#xff0c;应用会显示提醒。该项目涉及时间控制、状态管理和用户交互&#xff0c;是学习鸿蒙应用开发的绝佳实践项目。 关键词 UI互动应用倒计时器状态管理用户交互…

Linux动态库和静态库

1&#xff0c;手动制作静态库 1&#xff0c;如何形成静态库文件 做库时&#xff0c;头文件(.h)必须暴露&#xff0c;源文件(.c)必须隐藏。 操作&#xff1a;将需要形成库的文件编译成.o文件&#xff1a; 然后用指令&#xff1a;ar -rc libmy_stdio.a my_stdio.o my_string.o…

java基础之 String\StringBuffer\ StringBuilder

文章目录 String字符串的创建为什么说String是不可变的&#xff1f;创建后的字符串存储在哪里&#xff1f;字符串的拼接String类的常用方法 StringBuilder & StringBuffer使用方法验证StringBuffer和StringBuilder的线程安全问题 总结三者区别什么情况下用运算符进行字符串…

告别繁琐统计,一键掌握微信数据

微信数据管理的挑战在数字时代&#xff0c;微信已成为我们日常沟通和商业活动的重要工具。然而&#xff0c;随着微信号数量的增加&#xff0c;手动统计每个账号的数据变得越来越繁琐。从好友数量到会话记录&#xff0c;再到转账和红包&#xff0c;每一项都需要耗费大量的时间和…

bert-base-chinese模型使用教程

向量编码和向量相似度展示 import torch from transformers import BertTokenizer, BertModel import numpy as npmodel_name "C:/Users/Administrator.DESKTOP-TPJL4TC/.cache/modelscope/hub/tiansz/bert-base-chinese"sentences [春眠不觉晓, 大梦谁先觉, 浓睡…

HTML+CSS科技感时钟(附源码!!!)

预览效果 源码(直接复制使用) <!DOCTYPE html> <html lang"zh-Hans"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>科技感时钟</…

PyQt5实战——UTF-8编码器功能的实现(六)

个人博客&#xff1a;苏三有春的博客 系类往期文章&#xff1a; PyQt5实战——多脚本集合包&#xff0c;前言与环境配置&#xff08;一&#xff09; PyQt5实战——多脚本集合包&#xff0c;UI以及工程布局&#xff08;二&#xff09; PyQt5实战——多脚本集合包&#xff0c;程序…

‌MySQL中‌between and的基本用法‌

文章目录 一、between and语法二、使用示例2.1、between and数值查询2.2、between and时间范围查询2.3、not between and示例 BETWEEN AND操作符可以用于数值、日期等类型的字段&#xff0c;包括边界值。 一、between and语法 MySQL中的BETWEEN AND操作符用于在两个值之间选择…

微服务系列一:基础拆分实践

目录 前言 一、认识微服务 1.1 单体架构 VS 微服务架构 1.2 微服务的集大成者&#xff1a;SpringCloud 1.3 微服务拆分原则 1.4 微服务拆分方式 二、微服务拆分入门步骤 &#xff1a;以拆分商品模块为例 三、服务注册订阅与远程调用&#xff1a;以拆分购物车为例 3.1 …

jvm学习笔记-轻量级锁内存模型

一&#xff0c;轻量级锁 LockRecord的那个第一个成员变量是拷贝对应锁定了的java对象资源的MarkWord&#xff0c;Lock Record有一个Ptr指针刚开始指向自己&#xff0c;后面这个指针存储在锁定资源的java对象的markword中&#xff0c;后续可以通过java对象的MarkWord快速定位到…

【力扣专题栏】面试题 01.02. 判定是否互为字符重排,如何利用数组模拟哈希表解决两字符串互排问题?

题解目录 1、题目描述解释2、算法原理解析3、代码编写(1)、两个数组分别模拟哈希表解决(2)、利用一个数组模拟哈希表解决问题 1、题目描述解释 2、算法原理解析 3、代码编写 (1)、两个数组分别模拟哈希表解决 class Solution { public:bool CheckPermutation(string s1, stri…

指针和内存地址的关系(uint8_t和uint32_t的指针有什么区别)

指针在我们的学习中非常常见&#xff0c;有些人只是了解指针的基本概念&#xff0c;却不知道他的原理&#xff0c;到时候使用起来一头雾水&#xff0c;接下来我将对指针做出一些解释说明。 一、数据是如何存储的&#xff1a; 我们初始化一个int变量a,变量a会存储到内存中&#…

flutter 专题四 Flutter渲染流程

一、 Widget - Element - RenderObject关系 二、 Widget 、Element 、RenderObject 分别表示什么 2.1 Widget Widget描述和配置子树的样子 Widget就是一个个描述文件&#xff0c;这些描述文件在我们进行状态改变时会不断的build。但是对于渲染对象来说&#xff0c;只会使用最…

高效内容营销策略提升品牌影响力与客户忠诚度

内容概要 内容营销是一种通过创造和分享有价值的内容&#xff0c;以吸引特定目标受众并促进品牌发展的策略。这种营销形式不仅仅注重产品的直接推广&#xff0c;更着眼于与受众之间建立长期的信任关系。有效的内容营销能够提升品牌在市场中的影响力和客户的忠诚度&#xff0c;…

git 入门作业

任务1: 破冰活动&#xff1a;自我介绍任务2: 实践项目&#xff1a;构建个人项目 git使用流程&#xff1a; 1.将本项目直接fork到自己的账号下&#xff0c;这样就可以直接在自己的账号下进行修改和提交。 这里插一条我遇到的问题&#xff0c;在fork的时候没有将那个only camp4的…

NumPy Ndarray学习

1.NumPy Ndarray 对象简介 NumPy 最重要的特点是其 N 维数组对象 ndarray&#xff0c;它是一系列同类型数据的集合&#xff0c;以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。 2.N…