• 前端开发规范


    H5前端代码开发规范

     H5前端代码开发规范... 1

    1     环境... 3

    2     命名... 3

    2.1 项目命名... 3

    2.2 目录(文件夹)命名... 3

    2.3 文件命名... 3

    2.3.1 页面(views/pages) 4

    2.3.2 JS文件命名... 4

    2.3.3 CSS、SCSS文件命名... 4

    2.3.4 HTML文件命名... 4

    2.3.5 资源文件命名... 4

    3     HTML. 4

    3.1 HTML5 doctype. 4

    3.2 语言属性... 5

    3.3 IE 兼容模式... 5

    3.4 字符编码... 5

    3.5 HTML. 5

    3.6 缩进    5

    4     CSS. 5

    4.1 分号    5

    4.2 继承    6

    4.3 简洁性... 6

    4.4 颜色    6

    4.5 语法    6

    4.6 命名    7

    4.7 Less、scss语法规范... 7

    4.8 编码规范... 8

    5     JavaScript 8

    5.1 命名    8

    5.1.1 文件夹命名... 8

    5.1.2 函数和变量命名... 8

    5.1.3 构造函数命名... 8

    5.1.4 常量命名... 8

    5.2 编码    8

    5.3 注释    8

    5.4 类型    9

    5.5 引用    9

    5.6 字符串... 9

    5.7 对象    9

    5.8 数组    9

    5.9 解构赋值... 9

    5.10     函数... 10

    5.11     原型... 10

    5.12     模块... 10

    5.13     迭代器... 11

    5.14     分号... 11

    5.15     杂项... 11

    5.16     编码规范... 11

    6     Vue. 11

    6.1 文件规范... 11

    6.2 组件开发... 12

    6.3 组件命名... 12

    6.3.1 常规组件... 12

    6.3.2 基础组件名... 12

    6.3.3 单例组件名... 13

    6.3.4 紧密耦合的组件名... 13

    6.3.5 组件名中的单词顺序... 13

    6.3.6 模板中的组件名大小写... 13

    6.4 Props命名... 13

    6.5 注释规范... 14

    6.6 编码规范... 14

    6.7 指令规范... 14

    6.8 编码规范... 14

    1   环境

    开发环境常规有VSCode、webstorm等

    为了统一开发,尽量使用webstorm,功能齐全;

    2   命名

    2.1      项目命名

    全部采用小写方式, 以下划线连接符“_”分隔。 例:my_project_name

    2.2      目录(文件夹)命名

    参照项目命名规则;
    有复数结构时,要采用复数命名法。多个单词使用下划线连接符分隔;
    例:scripts、styles、images、data_models

    2.3      文件命名

    2.3.1      页面(views/pages)

    1)页面命名使用下划线连接符(kebab-case)user_info.vue

    2)如果views下的文件只有一个文件,命名使用index.vue

    3)如果views下有文件夹,文件夹命名单个单词小写,多个单词使用下划线连接符

    2.3.2      JS文件命名

    命名使用使用小驼峰命名,如resizeEvent.js

    如果为单个单词,使用小写,如md5.js

    2.3.3      CSS、SCSS文件命名

    css、scss、less等样式文件单个单词命名为小写,多个单词使用下划线连接符

    2.3.4      HTML文件命名

    文件命名单个单词命名为小写,多个单词使用下划线连接符

    2.3.5      资源文件命名

    文件命名单个单词命名为小写,多个单词使用下划线连接符

    3   HTML

    3.1      HTML5 doctype

    为每个 HTML 页面的第一行添加标准模式(standard mode)的声明,这样能够确保在每个浏览器中拥有一致的展现。

    3.2      语言属性

    根据 HTML5 规范:建议为 html 根元素指定 lang 属性,从而为文档设置正确的语言:

    3.3      IE 兼容模式

    IE 支持通过特定的 <meta> 标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求,否则最好是设置为 edge mode,从而通知 IE 采用其所支持的最新的模式。

    3.4      字符编码

    统一采用 UTF-8 编码

    3.5      HTML

    属性按照特定的顺序出现以保证易读性

    3.6      缩进

    一次缩进2个空格;

    4   CSS

    4.1      分号

    不能漏写;

    4.2      继承

    不要把可继承的样式重复声明;

    4.3      简洁性

    保持代码的简洁。使用属性缩写。不必要的值不用写。例如:padding、margin、border等;

    4.4      颜色

    除了做透明效果是用rgba,否则都用16进制小写表示,能简写的采用简写模式;

    引号:最外层统一使用双引号;url的内容要用引号;

    注释:

    1)单行注释:*与内容之间必须保留一个空格。

    2)*要一列对齐,*与内容之间必须保留一个空格。

    3)规则声明块内注释

    使用 // 注释,// 后面加上一个空格,注释独立一行。

    4)文件注释

    文件顶部必须包含文件注释,用 @name 标识文件说明。*要一列对齐,*与内容之间必须保留一个空格,标识符冒号与内容之间必须保留一个空格。

    @description为文件或模块描述。

    @update为可选项,建议每次改动都更新一下。

    4.5      语法

    用两个空格来代替制表符(tab),缩进为2空格。

    为选择器分组时,将单独的选择器单独放在一行。

    在每个声明块的左花括号前添加一个空格。

    声明块的右花括号应当单独成行。

    每条声明语句的 : 后应该插入一个空格。

    每条声明都独占一行。

    所有声明语句都应当以分号结尾。最后一条声明语句后面的分号是可选的,但是,如果省略这个分号,你的代码可能更易出错。

    对于以逗号分隔的属性值,每个逗号后面都应该插入一个空格(例如,box-shadow)。

    4.6      命名

    class单词字母小写,多个单词组成时,使用中划线连接符“-”分隔;

    id单词字母小写,多个单词组成时采用camelCase;

    scss中的变量、函数、混合、placeholder采用camelCase命名

    4.7      Less、scss语法规范

    代码组织:代码必须(MUST)按如下形式按顺序组织:1、@import 2、变量声明 3、样式声明,以less语法为例:

    变量规则:全局变量放在统一的全局变量文件中进行维护;可复用属性尽量抽离为页面变量;

    选择器和“ { ”之间必须保留一个空格;

    属性名后的冒号(:)与属性值之间必须(MUST)保留一个空格,冒号前不得(MUST NOT)保留空格;

    定义变量时冒号(:)与变量值之间必须(MUST)保留一个空格,冒号前不得(MUST NOT)保留空格,以less语法为例:

    嵌套规则:避免嵌套层级过深,最好不超过3层;

    Scss/less嵌套中引入 空行:嵌套选择器和CSS属性之间空一行。

    4.8      编码规范

    开启 stylelint 代码规范和错误检查。参照stylelint-config-standard的标准进行扩展,安装相应的插件并在前端项目文件根目录下.stylelintrc.js进行配置;在前端项目根目录package.json中配置scripts命令脚本进行自动修复,无法修复的将在控制台给出提示。

    5    JavaScript

    5.1      命名

    5.1.1      文件夹命名

    文件夹、文件的命名与命名空间应能代表代码功能,可读性强,如: utils;

    5.1.2      函数和变量命名

    单个单词用小写,多单词情况采用具有意义的驼峰命名;

    5.1.3      构造函数命名

    构造函数的首字母要大写;变量函数名禁止使用关键字和保留字,禁止重新定义(不能重名)或定义不用;

    5.1.4      常量命名

    用大写字母,如HUBLIST

    5.2      编码

    采用统一的缩进方式排版代码,一个缩进为2个空格;

    5.3      注释

    单行注释用 // ,多行注释用 /* ... */,注释内容前后加一个空格;

    重要函数或者类等都要添加头描述;

    5.4      类型

    基本类型:字符串、数值、布尔类型、null、undefined

    复杂类型:object、array、function

    5.5      引用

    1)const 和 let 都是块级作用域,var 是函数级作用域,对所有引用都使用 const,不要使用 var

    如果引用是可变动的,则使用 let;

    2)var 存在变量提升的情况,即 var 声明会被提升至该作用域的顶部,但是他们的赋值并不会。而 const 和 let 并不存在这种情况。

    5.6      字符串

    字符串统一使用单引号的形式 '',程序化生成字符串时,请使用es6模板字符串;

    5.7      对象

    请使用字面量值创建对象 const a = {}

    不能使用保留字作为对象的键值;对象方法、对象属性值等均使用简写方式;

    5.8      数组

    请使用字面量值创建数组;

    向数组中添加元素时,请使用 push 方法;

    使用es6拓展运算符 ... 复制数组;

    5.9      解构赋值

    1)当需要使用对象的多个属性时,请使用es6解构赋值:

    2)当需要使用数组的多个值时,请同样使用解构赋值:

    5.10  函数

    1)请使用函数声明,而不是函数表达式

    2)不要在非函数代码块中声明函数

    3)不要使用 arguments,可以选择使用 ...

    5.11  原型

    使用 class,避免直接操作 prototype

    5.12  模块

    使用标准的 ES6 模块语法 import 和 export

    5.13  迭代器

    尽量不要使用 iterators

    5.14  分号

    遵循 Standard 的规范,不使用分号;

    5.15  杂项

    不要混用tab和space;

    变量或表达式赋值时用单引号’’,如遇单双引号同时存在的情况,则遵循单引号在外、双引号嵌套在内的原则;

    对上下文this的引用只能使用'_this', 'that', 'self'其中一个来命名;函数尽量用箭头函数代替,这样更简洁,而且绑定了this;

    行尾不要有空白字符;

    不允许有空的代码块。

    5.16  编码规范

    开启 eslint 代码规范和错误检查。参照eslint-config-standard的标准进行扩展,安装相应的插件并在前端vue项目文件夹根目录下.eslintrc.js进行配置;在项目根目录package.json中配置scripts命令脚本进行自动修复,无法修复的将在控制台给出提示。

    6   Vue

    6.1      文件规范

    项目文件目录说明:

    1.1   node_modules:项目需要的插件,依赖等

    1.2   pulic:项目入口模板文件,打包文件,无需编译文件

    1.3   src:项目主体文件

    1.3.1        api:接口请求文件(axios)

    1.3.2        assets:项目静态图片

    1.3.3        components:项目公用组件

    1.3.4        dict:静态字典文件

    1.3.5        directive: 自定义指令配置文件

    1.3.6        filters:过滤器文件

    1.3.7        mixins:混入文件

    1.3.8        plugins:UI插件引入文件

    1.3.9        styles:css配置文件

    1.3.10     utils:工具类存放文件

    1.3.11     views:主体组件文件

    1.3.12     store:vuex文件

    1.3.13     router:路由配置文件

    1.3.14     vue.config.js:webpack配置文件

    6.2      组件开发

    复用组件定义在components中,方便统一维护和调用

    特用组件在当前父组件文件夹下定义

    所有弹框嵌套表格或其他复杂交互全部才有组件形式,尽量控制一个vue文件不超过400行;

    6.3      组件命名

    组件的命名需遵从以下原则:有意义的,简短(2 到 3 个单词)、具有可读性;

    6.3.1      常规组件

    组件使用大驼峰

    6.3.2      基础组件名

    基础组件名 应用特定样式和约定的基础组件(也就是展示类的、无逻辑的或无状态的组件) 应该全部以一个特定的前缀开头,比如 Base、App 或 V;

    6.3.3      单例组件名

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

    6.3.4      紧密耦合的组件名

    紧密耦合的组件名 和父组件紧密耦合的子组件应该以父组件名作为前缀命名。

    6.3.5      组件名中的单词顺序

    组件名中的单词顺序(组件名应该以高级别的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。)

    6.3.6      模板中的组件名大小写

    模板中的组件名大小写 对于绝大多数项目来说,在单文件组件和字符串模板中组件名应该总是 PascalCase 的——但是在 DOM 模板中总是中划线连接符的。

    完整单词的组件名示例:

    6.4      Props命名

    Prop 名大小写 在声明 prop 的时候,其命名应该始终使用 camelCase,而在模板和 JSX 中应该始终使用中划线连接符。

    6.5      注释规范

    以下情况,务必添加注释:

    1)公共组件使用说明

    2)各组件中重要函数或者类说明

    3)复杂的业务逻辑处理说明;

    4)注释原则同上css、js、html注释原则;

    6.6      编码规范

    尽量使用 ES6 风格编码:

    定义变量使用 let ,定义常量使用 const;

    使用模板字符串语法;

    使用解构赋值、箭头函数、扩展运算符、模块等;

    6.7      指令规范

    指令有缩写一律采用缩写形式:如 v-on 写成 @ 、v-bind简写成 :

    v-for 循环必须加上 key 属性,在整个 for 循环中 key 需要唯一;

    6.8      编码规范

    开启 eslint、 stylelint 代码规范和错误检查,配置命令脚本进行自动修复,无法修复的将在控制台给出提示。

     

  • 相关阅读:
    [Swift]LeetCode646. 最长数对链 | Maximum Length of Pair Chain
    [Swift]LeetCode645. 错误的集合 | Set Mismatch
    [Swift]LeetCode643. 子数组最大平均数 I | Maximum Average Subarray I
    [Swift]LeetCode641. 设计循环双端队列 | Design Circular Deque
    [Swift]LeetCode640. 求解方程 | Solve the Equation
    [Swift]LeetCode639. 解码方法 2 | Decode Ways II
    [Swift]LeetCode638. 大礼包 | Shopping Offers
    [Swift]LeetCode637. 二叉树的层平均值 | Average of Levels in Binary Tree
    [Swift]LeetCode636. 函数的独占时间 | Exclusive Time of Functions
    (4.2)动态管理视图DMV
  • 原文地址:https://www.cnblogs.com/ckmouse/p/12448778.html
Copyright © 2020-2023  润新知