前端代码规范

代码千万行,安全第一行;前端不规范,同事两行泪。

一、命名规范

(一) 项目命名
全部采用小写的方式
以中划线分割
正确命名:mall-management-system (商城管理系统)
错误命名:mall-management-system 或 mallManagementSystem

(二) 目录命名
全部采用小写的方式
以中划线命名
复数时,要采用复数结构
正确命名:sctipts / styles / utils / demo-scripts

(三) JS、CSS、SCSS、HTML、PNG等文件命名
全部采用小写的方式
以中划线命名
正确命名:render-dom.js / signup.css / index.html / company-logo

(四) 命名严谨性
严禁使用 拼音和中文混合的方式

严禁使用中文、中文拼音

正确使用 英文拼写和语法

一些特殊的词语可以采用国际通用的名称

如:河南=henan / 人民币=rmb

正确命名:movie(电影) / employee(员工)

错误命名:dianyin(电影) condition --> condi (×)

二、HTML规范(Vue Template通用)

(二) 缩进
一个tab 使用两个空格
嵌套的节点应该缩进
(三) 分块注释
在每一个块级元素,列表元素 和 表格元素中,加上一对HTML注释,注释格式

<!-- 英文 中文 start -->
 <!-- 英文 中文 end -->

例如:

<!-- header 头部 start -->
  <header>
    <div>
      <a href=""></a>
    </div>
  </header>
  <!-- header 头部 end -->

(四) 语义化标签
HTML5 有很多语义化标签,优先使用这些语义化标签,避免每一个页面都是 div或者 p

(五) 引号
**使用双引号" " **而不是单引号’’

三、CSS 规范

(一) 命名
类名使用小写字母,以中划线分割

.swiper-image { ... }

id 使用 驼峰式命名

#header { ... }

scss中的变量、函数、混合、placeholder采用驼峰命名
class 的命名不要使用 标签名

如:.p .div

(二) 选择器
尽量使用直接子选择器,否则,有时会造成性能损耗

不推荐:

.content .title { ... }

推荐:

.content > .title { ... }

(三) 尽量使用缩写的属性
不推荐:

 border-style: solid;
 border-width: 1px;
 border-color: red;

推荐:

border: 1px solid red;

(四) 每个选择器及属性独占一行
不推荐:

img {
      width: 100%;box-shadow: 3px 3px 3px 3px rgba(0, 0, 0, .1);
}

推荐:

img {
      width: 100%;
      box-shadow: 3px 3px 3px 3px rgba(0, 0, 0, .1);
}

(五) 省略 0 后面的单位

border-width: 0;

(六) 避免使用 ID 选择器及 全局标签污染全局样式
能不用 id选择器 就不要 使用id选择器,避免不是禁止

JS规范

  • 每行代码结束必须有分号。
  • 变量命名:
    • 驼峰式命名.原生JS变量要求是纯英文字母,首字母须小写;
    • 要求变量集中声明,避免全局变量;
    • 私有属性、变量和方法以下划线 _ 开头;
    • 常量, 使用全部字母大写,单词间下划线分隔的命名方式;
    • 枚举的属性, 使用全部字母大写,单词间下划线分隔的命名方式
    • 类命名:首字母大写,驼峰式命名.如MyVue
    • 函数命名:首字母小写驼峰式命名.如myVue()
    • 命名语义化,尽可能利用英文单词或其缩写。
  • 代码结构明了,加适量注释.提高函数重用率。
  • 注释 (尽量提高代码本身的清晰性、可读性,合理的注释、空行排版等,可以让代码更易阅读、更具美感)
  • 利用缓存存放数据、资源压缩、避免高频刷新页面、静态资源上传cdn

函数/方法注释:

函数/方法注释须包含函数说明,有参数和返回值时必须使用注释标识。;
参数和返回值注释必须包含类型信息和说明;
当函数是内部函数,外部不可访问时,可以使用 @inner标识;

/**
 * 函数描述
 *
 * @param {string} p1 参数1的说明
 * @param {string} p2 参数2的说明,比较长
 *     那就换行了.
 * @param {number=} p3 参数3的说明(可选)
 * @return {Object} 返回值描述
 */
function foo(p1, p2, p3) {
    var p3 = p3 || 10;
    return {
        p1: p1,
        p2: p2,
        p3: p3
    };
}

文件注释
文件注释用于告诉不熟悉这段代码的读者这个文件中包含哪些东西。 应该提供文件的大体内容, 它的作者, 依赖关系和兼容性信息。如下:

/**
 * @fileoverview Description of file, its uses and information
 * about its dependencies.
 * @author user@meizu.com (Firstname Lastname)
 * Copyright 2009 Meizu Inc. All Rights Reserved.
 */

图片规范
所有页面元素类图片均放入img文件夹,测试用图片放于demo文件夹。
命名全部用小写英文字母或数字或_的组合,其中不得包含汉字或空格或特殊字符;
尽量用易懂的词汇,便于团队其他成员理解。
另,命名分头尾两部分,用下划线隔开,比如ad_left01.gifbtn_submit.gif
在保证视觉效果的情况下选择最小的图片格式与图片质量,以减少加载时间。
运用css精灵图技术集中小的背景图或图标,减小页面http请求,但注意,请务必在对应的精灵图psd源图中划参考线,并保存至img目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值