【记录】前端代码规范 规范

【记录】前端代码规范 规范1 命名规范 a ClassName 命名 ClassName 的命名应该尽量精短 明确 必须以字母开头命名 且全部字母为小写 单词之间统一使用下划线 连接当子孙模块超过 4 级或以上的时候 可以考虑在祖先模块内具有识辨性的独立缩写作为新的子孙模块 这个时候 tiui 为 tenant info user img 首字母缩写 divclass tenant divclass tenant cover divclass tenant cover divclass tenant

1. 命名规范

a.ClassName命名

<!-- 这个时候 tiui 为 tenant_info_user_img 首字母缩写--> <div class="tenant"> <div class="tenant_cover"></div> <div class="tenant_info"> <div class="tenant_info_user"> <div class="tenant_info_user_img"> <img src="" alt=""> <!-- 这个时候 tiui 为 tenant_info_user_img 首字母缩写--> <div class="tiui_tit"></div> <div class="_txt"></div> ... </div> </div> <div class="tenant_info_list"></div> </div> </div> 

祖先模块不能出现下划线,除了是全站公用模块,如 mod_ 系列的命名:

<!-- 这个是全站公用模块,祖先模块允许直接出现下划线 --> <div class="mod_info"> <div class="mod_info_son"></div> <div class="mod_info_son"></div> ... </div> 

b.图片命名

图片命名建议以以下顺序命名:

图片业务(可选) +(mod_)图片功能类别(必选)+ 图片模块名称(可选) + 图片精度(可选)

图片业务:

  • List item
  • pp_:拍拍
  • wx_:微信
  • sq_:手Q
  • jd_:京东商城

图片功能类别:

  • mod_:是否公共,可选
  • icon:模块类固化的图标
  • logo:LOGO类
  • spr:单页面各种元素合并集合
  • btn:按钮
  • bg:可平铺或者大背景

图片模块名称:

  • goodslist:商品列表
  • goodsinfo:商品信息
  • useravatar:用户头像

图片精度:

  • 普清:@1x
  • Retina:@2x | @3x

如下面例子:

 公共模块: wx_mod_btn_goodlist@2x.png wx_mod_btn_goodlist.png mod_btn_goodlist.png 非公共模块: wx_btn_goodlist@2x.png wx_btn_goodlist.png btn_goodlist.png 

c. 声明变量命名

  • 小驼峰命名
  • 语义化

d. vue文件命名

组件的命名需遵从以下原则:

  • 有意义的 : 不过于具体,也不过于抽象
  • 简短 : 2 到 3 个单词
  • 具有可读性 : 以便于沟通交流
  • 小驼峰命名
    例如:
    在这里插入图片描述




2. JS代码规范

a. 基本

  • 2个空格缩进,必须正确缩进
  • 分号、逗号之后必须空格或转行
  • 左大括号不转行
  • 左大括号之前一定有空格
  • 若左右大括号在一行,则大括号内侧必须有空格。例如const obj = { a: 1, b: 2 }
  • 双目运算符前后必须有空格 例如: a && b
  • 非必要不写分号(无行末分号)

b. 变量

  • 不使用var,没有显式赋值的变量必须用const,其余用let
  • 允许多个变量共用声明和初始化语句,逗号隔开,但不能太长。例如:const
    a = 1, b = 2

  • 变量名原则上使用小驼峰命名法(首字母小写,其余单词首字母大写),例如userInfo
  • 对象内容很短时,可以在一行内完成
  • 对象的最后一个成员后,不得添加逗号
  • 对象成员变量赋值时,若属性名称和读取的变量名一致,则必须简写。即const obj = { a: a
    }必须简写为const obj = { a }

c. 控制

  • if、else、for的执行语句块很短时,可以在行内完成,不必大括号展开。若换行,必须大括号展开。
  • else应该与if的右大括号在同一行,此时else前后都有空格,即} else {
  • if、else if、else的层级嵌套尽量不要超过三层

3. 注释规范

a.HTML中单行注释

<!-- Comment Text --> <div>...</div> 

b. JS中注释

·单行注释

 // 描述该变量是做什么的 let pig = '' 

·多行注释

说明:以 /* 开头, / 结尾
语法:/

注释说明 /
使用规则:第一行为/

,最后行为*/,其他行以开始,并且注释文字与保留一个空格

/* * 代码执行到这里后会调用setTitle()函数 * setTitle()设置title的值 */ setTitle() 

·函数(方法)注释

语法:

*/

常用注释关键字:

注释名 语法
@param @param 参数名 {参数类型} 描述信息
@return @return {返回类型} 描述信息

例如:

 / * 批量解冻/冻结 * @author 饺子 * @param arr {Array} 数据数组 * @param isFreeze {Boolean} 是否冻结【0=否,1=是】 */ async batchPersonAuditEntrance(arr=[], isFreeze=0) { 
    if(arr.length <= 0) return this.$message.error('暂无处理数据') let lists = this.$helper.deepClone(arr) lists = lists.map((item,index)=> { 
    return { 
    operationId: item.id, //* 运营数据id accountType: item.accountType, //* 账号类型 accountId: item.accountId, //* 账号id villageId: item.villageId, //* 小区id isFreeze: isFreeze, //* 是否冻结【0=否,1=是】 realName: item.realName, // 名称(解冻必传) phoneNumber: item.phoneNumber, // 电话号码(解冻必传) avatarUrl: item.avatarUrl, // 头像(解冻必传) gender: item.gender, // 性别(解冻必传) templateEndDate: item.expiredTime, // 时间模板结束时间(解冻必传) index } }) const { 
    code, data: { 
    list = [] }, message} = await this.$myRequest(this.$api.batchPersonAuditEntrance, { 
   list : JSON.stringify(lists)}) if(code !== 200) return this.$message.error(message) if(list && list.length <=0) { 
    this.$message.success('操作成功') this.$refs.table.clearSelection() await this.getList() return } // list长度大于0则处理错误信息 this.showFailData = list.map(item=> { 
    return { 
    message: item.message, // 后端返回的错误信息 ...arr[item.index], // 找到前端错误信息对应的项 } }) this.showFaceFailDataDialog = !this.showFaceFailDataDialog } 

4. git提交代码规范

// git commit -m 'type:,描述信息' git commit -m 'feat: 描述信息' 

Type: commit的类别,包含以下七种:

  • feat:新功能(feature)
  • fix:修补bug
  • docs:文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动

参考:凹凸前端代码规范

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213697.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午5:51
下一篇 2026年3月18日 下午5:51


相关推荐

  • Cursor如何配置代理

    Cursor如何配置代理

    2026年3月15日
    3
  • Linux运用 visudo命令修改用户权限

    Linux运用 visudo命令修改用户权限转自 http man linuxde net sudosudo 命令用来以其他身份来执行命令 预设的身份为 root 在 etc sudoers 中设置了可执行 sudo 指令的用户 若其未经授权的用户企图使用 sudo 则会发出警告的邮件给管理员 用户使用 sudo 时 必须先输入密码 之后有 5 分钟的有效期限 超过期限则必须重新输入密码 语法 sudo 选项 参数 选项 b 在后台执行指令

    2026年2月11日
    2
  • 树莓派搭建个人网站_树莓派 freenas

    树莓派搭建个人网站_树莓派 freenas必要的设置如下:#在树莓派上设置手机上网的接口ifconfig#查看网络接口sudosrsepc_if_masq.sheth0#选择能上网的接口,此处为eth0#在电脑1上设置路由信息使得电脑1能ping到测试手机sudorouteadd-host172.16.0.2gw192.168.2.104#临时添加路由信息,其中172.16.0.2为测试手机的IP地址,192.168.2.104为树莓派的IP地址route-n#查看路由信息#在测试手机上SIM卡信.

    2022年10月6日
    4
  • Springboot整合一之Springboot整合RabbitMQ

    Springboot整合一之Springboot整合RabbitMQ目前,springboot已然成为了最热的java开发整合框架,主要是因其简单的配置,并且本身提供了很多与第三方框架的整合,甚至可以让我们在短短的几分钟里就可以搭建一个完整的项目架构。所以,博主打算近期写一些springboot整合案例,也不知道先写哪个,那就从最近的写起吧, 言归正传。。。…

    2022年5月15日
    42
  • Gradle 配置详解

    Gradle 配置详解Gradle 配置详解我们为大家介绍一下 Android 项目中 Gradle 的配置 1 AndroidStudi 项目结构我们介绍 AndroidStudi 中 Android 项目的 Gradle 配置之前 我们先来看下 AndroidStudi 中 Android 项目的结构 我们新建一个项目结构大致如下图所示 我们通过上面的图片可以看到 Android 项目中跟 Gradle 相关的主要有 7 个部分 根目录下的 build gradle 顶级构建文件 配置 Gr

    2026年3月19日
    2
  • 基于朴素贝叶斯的文本分类算法「建议收藏」

    基于朴素贝叶斯的文本分类算法「建议收藏」基于朴素贝叶斯的文本分类算法摘要:常用的文本分类方法有支持向量机、K-近邻算法和朴素贝叶斯。其中朴素贝叶斯具有容易实现,运行速度快的特点,被广泛使用。本文详细介绍了朴素贝叶斯的基本原理,讨论多项式模型(MM),实现了可运行的代码,并进行了一些数据测试。关键字:朴素贝叶斯;文本分类第1章贝叶斯原理1.1贝叶斯公式[1]已知某条件概率,如何得到两个事件交换后的概率,也就…

    2022年5月17日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号