merge
This commit is contained in:
commit
f66a952b77
40
react编码规范.md
40
react编码规范.md
|
@ -1,23 +1,49 @@
|
||||||
# react组件开发规范
|
# react组件开发规范
|
||||||
## 语言要求
|
|
||||||
|
## 文件命名
|
||||||
|
- 每一个文件只包含一个组件,每一个基本组件只包含单一功能
|
||||||
|
- src目录下,如果文件返回是一个类,文件名首字母大写
|
||||||
|
- 文件js模块统一使用js后缀名
|
||||||
|
- 测试用例文件名使用.spec.js后缀
|
||||||
|
- 每一个组件使用一个单独的测试用例文件
|
||||||
|
|
||||||
|
## js规范
|
||||||
- 使用es6开发
|
- 使用es6开发
|
||||||
- 使用jsx语法
|
- 使用jsx语法
|
||||||
- 组件命名使用大驼峰, ComponentDemo
|
- 组件命名使用大驼峰, ComponentDemo
|
||||||
- 带命名空间的组件,如果一个组件包含只有自身使用的子组件,以该组件为命名空间编写组件,例如Table,Table.Head
|
- 带命名空间的组件,如果一个组件包含只有自身使用的子组件,以该组件为命名空间编写组件,例如Table,Table.Head
|
||||||
- 不使用displayName命名
|
- 不使用displayName命名
|
||||||
- 每一个文件只包含一个组件,每一个基本组件只包含单一功能
|
|
||||||
- 使用js为扩展名
|
|
||||||
- 组件样式调用,使用classnames模块,进行样式处理,使用className调用
|
|
||||||
- 自定义属性使用data-
|
- 自定义属性使用data-
|
||||||
- 使用propTypes进行props类型校验
|
- 使用propTypes进行props类型校验
|
||||||
- 使用defaultProps定义默认参数
|
- 使用defaultProps定义默认参数
|
||||||
- 使用getInitialState初始化状态对象
|
|
||||||
- 尽量少或者不使用ref获取和操作dom节点,使用state和prop进行控制dom
|
- 尽量少或者不使用ref获取和操作dom节点,使用state和prop进行控制dom
|
||||||
- 事件调用使用在元素上onClick调用
|
- 事件调用使用在元素上onClick调用
|
||||||
- 注意,react和html的表单元素的差异
|
- 注意,react和html的表单元素的差异
|
||||||
- 使用es6后,不支持mixin,使用decorator进行扩展,(babel?需要增加解析器)和高阶组件方式扩展。
|
- 使用es6后,不支持mixin,使用decorator进行扩展,(babel?需要增加解析器)和高阶组件方式扩展。
|
||||||
|
- 尽量不使用比较大的第三方js库
|
||||||
|
|
||||||
|
|
||||||
- 代码规范使用 [airbnb规范](https://github.com/airbnb/javascript/tree/master/react)
|
- 代码规范使用 [airbnb规范](https://github.com/airbnb/javascript/tree/master/react)
|
||||||
|
|
||||||
|
## 样式规范
|
||||||
|
- 组件样式调用,使用classnames模块,进行样式处理,使用className调用
|
||||||
|
- 组件内部使用clsPrefix为样式前缀
|
||||||
|
```javascript
|
||||||
|
const clsPrefix = 'u-select';
|
||||||
|
const class1 = {
|
||||||
|
[`${clsPrefix}-item`]: true,
|
||||||
|
[`${clsPrefix}-item-last`]: stepLast,
|
||||||
|
[`${clsPrefix}-status-${status}`]: true,
|
||||||
|
[`${clsPrefix}-custom`]: icon,
|
||||||
|
[className]: !!className,
|
||||||
|
};
|
||||||
|
const class2 = [`${clsPrefix}-submit`, `${clsPrefix}-item`];
|
||||||
|
|
||||||
|
const classString = classNames('hide', class1, class2);
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## 基本代码结构
|
## 基本代码结构
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
@ -59,3 +85,7 @@ Button.defaultProps = defaultProps;
|
||||||
|
|
||||||
module.exports = Button;
|
module.exports = Button;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
参考链接
|
||||||
|
https://github.com/react-component/react-component.github.io/blob/master/docs/zh-cn/code-style/js.md
|
||||||
|
|
14
现有组件及待开发.md
14
现有组件及待开发.md
|
@ -1,9 +1,15 @@
|
||||||
# 组件明细
|
# 组件明细
|
||||||
|
|
||||||
### 现有组件
|
### 现有组件
|
||||||
|
|
||||||
- button
|
- button
|
||||||
|
|
||||||
### 待开发组件
|
### 待开发组件
|
||||||
- carousel
|
|
||||||
|
|
||||||
|
|
||||||
#### 基本组件
|
#### 基本组件
|
||||||
|
|
||||||
- radio
|
- radio
|
||||||
- checkbox
|
- checkbox
|
||||||
- combo
|
- combo
|
||||||
|
@ -31,8 +37,10 @@
|
||||||
- gallery
|
- gallery
|
||||||
- card
|
- card
|
||||||
- loadingstate
|
- loadingstate
|
||||||
|
- carousel
|
||||||
|
|
||||||
#### 复杂组件
|
#### 复杂组件
|
||||||
|
|
||||||
- buttonGroup
|
- buttonGroup
|
||||||
- inputGroup
|
- inputGroup
|
||||||
- tab
|
- tab
|
||||||
|
@ -44,11 +52,14 @@
|
||||||
- modal
|
- modal
|
||||||
- autocomplete
|
- autocomplete
|
||||||
|
|
||||||
|
|
||||||
#### 布局组件
|
#### 布局组件
|
||||||
|
|
||||||
- col
|
- col
|
||||||
- row
|
- row
|
||||||
|
|
||||||
#### 插件式组件
|
#### 插件式组件
|
||||||
|
|
||||||
- 日期组件
|
- 日期组件
|
||||||
- 表格组件
|
- 表格组件
|
||||||
- 表单组件
|
- 表单组件
|
||||||
|
@ -56,5 +67,6 @@
|
||||||
- tree
|
- tree
|
||||||
|
|
||||||
#### 核心工具
|
#### 核心工具
|
||||||
|
|
||||||
- 表单校验
|
- 表单校验
|
||||||
- 拖拽
|
- 拖拽
|
||||||
|
|
Loading…
Reference in New Issue