开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
前言
本篇文章介绍本项目的一些代码规范,包含命名、注释、语法等。更多详细的介绍,会在具体的模块中补充。
知识点
CSS 命名 组件命名 语法规范
一、CSS 命名
1. class 命名
本项目中 CSS 采用 BEM 命名法。关于 BEM 命名规范,在此不做过多描述。项目中有部分代码未能完全采用该规范,但会尽量避免。示例:
<view class="switch switch--checked">
<input class="switch__input" type="checkbox" name="{{ name }}" value="{{ value }}" />
<view class="switch__node">
<view class="spinner__snake"></view>
</view>
</view>
2. 样式属性
- 书写顺序
- 定位:
z-index、position、left、top、right、bottom 等 - 模型:
display、float 等 - 尺寸:
margin、padding、width、height、min-width、min-height、line-height 等 - 文字:
font-size、font-weight、text-align、color 等 - 背景:
border、border-radius、background、box-shadow 等 - 溢出:
overflow、text-overflow 等 - 其它:
animation、transform 等
- 定位:
- 书写规范
- 使用
CSS属性缩写:
如margin: 0 10px;color: #fff;background: url('xx.png') center no-repeat cover; - 0 值后省略单位:
如margin: 0 10px;padding: 0; - 每行样式后需要加
;结尾
- 使用
二、函数命名与注释
- 命名:
- 采用驼峰命名,即
camelCase形式 - 命名应该使用英文且有意义
- 采用驼峰命名,即
- 注释:
- 单行注释在注释的
//后需要保留一个空格 - 多行注释如下
/** * @desc 函数说明 * @param {string} [name] 参数描述 * @return {object} 返回描述 */ - 单行注释在注释的
三、组件约束
-
组件目录
- 组件目录统一使用
kebab-case风格 - 组件文件统一使用
index.xxx格式,如下:
└── components // 所有组件目录 └── movie-item // 单个组件目录 ├── index.js // 逻辑交互 ├── index.json // 静态配置 ├── index.wxml // 组件模板 └── index.scss // 组件样式 - 组件目录统一使用
-
组件样式设置
对于全局组件,需要开启样式穿透,使其父组件或者页面,能修改组件的样式,如下:JS options: { addGlobalClass: true }, -
组件内部属性或方法书写顺序
Component({ behaviors: [], options: {}, externalClasses: [], properties: {}, data: {}, observers: {}, created() {}, attached() {}, ready() {}, methods: {} }) -
组件
properties- 命名使用
camelCase形式,模板中使用kebab-case形式 - 尽可能提供
value默认值
- 命名使用
-
组件说明
/**
* m-tag
* @module components/tag
* @desc 标签
* @param {string} [type=primary] 组件样式,可选 primary, error, success, warning
* @param {string} [color] 传入颜色值
*
* @example
* <m-tga color="red">失败</m-tag>
*/
四、JS 语法
- 优先使用
ES6及以上语法,特别是对象解构赋值与箭头函数。// 例1: // bad onLoad: function() { } // good onLoad() { } // 例2: // bad setTimeout(function() { }) // good setTimeout(() => { }) - 使用全等操作符
=== - 对于不使用的
console.log应及时删除
五、Wxml 语法
- 标签全部使用小写,组件使用
kebab-case形式 - 标签属性使用双引号
- 标签属性较多时,应该折行处理,每个属性占一行,布尔值属性为
true时省略不写,如:<image src="xxx.jpg" alt="xxx" lazy-load mode="aspectFit" /> - 标签闭合
对于展示类型的标签(原生或者组件),应该使用单闭合,如:<image src="" alt="" /> <slot />
最后
本文是对本项目代码的规范以及文件命名等的约束说明,可能有些方式与您的日常使用并不一致,我们求同存异,如您有更好的方案或建议,请在评论区留言。