Skip to content

Commit 7ecbc23

Browse files
committed
update style
1 parent 685cb25 commit 7ecbc23

File tree

4 files changed

+21
-160
lines changed

4 files changed

+21
-160
lines changed

docs/zh-cn/code-style/css.md

+5-7
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,18 @@
33

44
## 基础
55
- 样式采用 less 语法
6-
- 建议直接用 bootstrap,bootstrap 没的自己写在 assets/bootstrap.less 中
7-
- 如果有独立样式则以 rc 为命名空间
8-
- 如果样式有依赖其他组件,需要建立对应的 js,例如 assets/bootstrap.js
6+
- 样式则以 rc 为命名空间
7+
- 如果样式有依赖其他组件,需要建立对应的 js,例如 src/assets/bootstrap.js
98

109
```js
11-
require('xx/assets/yy.css'); // depend other component's css
12-
require('./bootstrap.css');
10+
require('xx/src/assets/yy.css'); // depend other component's css
11+
require('../assets/bootstrap.less');
1312
```
1413

1514
## 文件命名
1615

17-
- less 文件名推荐和 js 文件名对应,例如 lib/TimePanel.js 对应 assets/bootstrap/TimePanel.less
16+
- less 文件名推荐和 js 文件名对应,例如 lib/TimePanel.js 对应 assets/index/TimePanel.less
1817
- index.less 等入口文件名小写,推荐里面只 import 对应的 less 源码
19-
- 公共样式请联系 再飞 加入公共样式库,在组件中 devDependencies 依赖公共样式
2018

2119
## 语义化
2220

docs/zh-cn/code-style/js.md

+10-147
Original file line numberDiff line numberDiff line change
@@ -1,149 +1,16 @@
11
# js 编码规范
22

3-
代码通过 eslint(在根目录运行 `npm run lint`),熟悉规范参见如下
3+
代码通过 eslint(在根目录运行 `npm run lint`),具体规范参见: https://github.com/airbnb/javascript
44

5-
## 具体书写规范
6-
7-
---
8-
9-
下面是一些常用注意点:
10-
11-
12-
### 编码
13-
14-
统一用 utf-8
15-
16-
17-
### 长度
18-
19-
长度不超过 80 个字符。别小看这一条规则,如果严格去遵循,你会发现代码变清晰了。而且,你一定能做到的。
20-
21-
参考:
22-
23-
1. pep8 为 79 个字符
24-
2. npm 为 80 个字符
25-
3. google 为 80 个字符
26-
27-
28-
### 缩进
29-
30-
缩进使用 2个空格,组件内保持统一,不混用。禁用 tab。
31-
32-
参考:
33-
34-
1. npm 为 2 空格
35-
2. pep8 为 4 空格
36-
3. google 为 2 空格( gjslint 没规定)
37-
38-
39-
40-
### 花括号
41-
42-
#### 花括号不换行
43-
44-
45-
46-
````
47-
if (foo) {
48-
}
49-
````
50-
51-
52-
53-
````
54-
if (foo)
55-
{
56-
}
57-
````
58-
59-
**不允许一行判断,一律换行**
60-
61-
62-
63-
````
64-
if (foo) return;
65-
````
66-
67-
###命名约定
68-
69-
1. 常量 UPPERCASE_WORD
70-
2. 变量 camelName
71-
3. 类名 CamelName
72-
73-
74-
### 空格
75-
76-
#### 操作符之间需要空格
77-
78-
79-
80-
````
81-
var x = y + z;
82-
````
83-
84-
85-
86-
````
87-
var x=y+z
88-
````
89-
90-
#### 只空一格
91-
92-
93-
94-
````
95-
{
96-
a: 'short',
97-
looooongname: 'long'
98-
}
99-
````
100-
101-
102-
103-
````
104-
{
105-
a : 'short',
106-
looooongname: 'long'
107-
}
108-
````
109-
110-
### 逗号与换行
111-
112-
建议用自然人的处理方法
113-
114-
````
115-
{
116-
a: 'a',
117-
b: 'b',
118-
c: 'c'
119-
}
120-
````
121-
122-
不建议使用 npm 风格的逗号与换行,即
123-
124-
````
125-
{
126-
a: 'a'
127-
,b: 'b'
128-
,c: 'c'
129-
}
130-
````
131-
132-
133-
### 变量声明
134-
135-
首先,**变量在使用前必须声明**
136-
137-
对于单 var 模式和多 var 模式,不做强行约定,但同一个文件里,风格必须一致。
1385

1396
## 文件命名
1407

141-
- js 模块采用 commonjs 格式,主体代码放在 lib 目录下,根目录 index.js 仅引用 lib 下相关文件
8+
- js 模块采用 es2015 格式,主体代码放在 src 目录下,根目录 index.js 仅引用 src 下相关文件
1429
- 若用到了 jsx 语法或 es6 特性,文件后缀名请改做 jsx,文件内请不要包含 `/** @jsx React.DOM */`
143-
- lib 目录模块如果返回值是个类,则文件名首字母大写
10+
- src 目录模块如果返回值是个类,则文件名首字母大写
14411
- 测试用例文件名以 .spec.js(jsx) 结尾
145-
- 测试用例文件名推荐和 lib 下源码对应,比如 lib/Calendar.jsx 对应于 tests/Calendar.spec.jsx
146-
- 测试用例入口文件名为 index.spec.js,推荐里面只 require 其他测试用例
12+
- 测试用例文件名推荐和 src 下源码对应,比如 src/Calendar.jsx 对应于 tests/Calendar.spec.jsx
13+
- 测试用例入口文件名为 index.spec.js,推荐里面只应 import 其他测试用例
14714

14815
## 代码格式
14916

@@ -158,14 +25,10 @@ var x=y+z
15825
}
15926
});
16027
```
161-
- log 使用 2.x debug 模块,不可以使用 console.log
162-
```js
163-
var debug = require('debug'))('rc-menu');
164-
debug('xxx');
165-
```
166-
- 公共包通过 npm install 后,js 中可以 require node_modules 下的公共包 js,但不可以 require css
28+
- log 可以使用 https://www.npmjs.com/package/warning
29+
- 公共包通过 npm install 后,js 中可以 import node_modules 下的公共包 js,但不可以 import css
16730
- 使用 propType 制定 react 组件属性的类型
168-
- 只能 require('react') 不可以 require('react/addons') 以及 require('react/lib/xx')
31+
- 只能 import 'react' 不可以 import 'react/lib/xx'
16932
- 禁止使用 jquery 等大而全的类库
17033
- React 类必须用一个变量声明
17134

@@ -177,7 +40,7 @@ var Menu = React.createClass({
17740
active: React.PropTypes.bool
17841
}
17942
});
180-
module.exports = Menu;
43+
export default Menu;
18144
```
18245

18346
- 组件根节点样式名默认为 rc- 加上小写组件名,组件名单词间以 - 分隔,允许通过 prefixCls 定制
@@ -197,7 +60,7 @@ var Menu = React.createClass({
19760
});
19861
```
19962

200-
- 组件是 react-component 而不是 react-bootstrap,不要把一些bootstrap的样式生搬过来,例如
63+
- 组件是 react-component 而不是 react-bootstrap,不要把一些 bootstrap 的样式生搬过来,例如
20164

20265
```js
20366
var Dialog = React.createClass({

docs/zh-cn/component-code-style.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,22 @@ author: [email protected]
2525

2626
### examples
2727

28-
- examples 中的 html 不可修改,通过 js 中的 jsx 渲染页面,通过 require css 引入 css
29-
- \`\`\`\`js 中的 js 代码为 commonjs 格式
28+
- examples 中的 html 不可修改,通过 js 中的 jsx 渲染页面,通过 import css 引入 css
29+
- \`\`\`\`js 中的 js 代码为 es2015 格式
3030

3131
```js
3232
\````js
33-
require('rc-menu/assets/index.css');
33+
import 'rc-menu/assets/index.less';
3434
var Menu = require('rc-menu');
3535
React.render(<Menu className = "nav-bar nav"></Menu>, document.getElementById('react-content'));
3636
\````
3737
```
3838

39-
通过 npm run gh-pages 来发布 examples 到外网(需要同级clone xx-gh-pages ,详见 gh-pages.sh)
39+
通过 npm run pub 来发布 npm 以及 demo, 例如 http://react-component.github.io/calendar/
4040

4141
### tests
4242

43-
- 代码位于 `tests/xx.spec.js` `index.spec.js` 为必须,里面可以 require 其他 spec
43+
- 代码位于 `tests/xx.spec.js` `index.spec.js` 为必须,里面可以 import 其他 spec
4444
- 测试用例 js 采用 es2015 格式,可以 import node_modules 下的公共包的 js 和 css
4545
- 测试框架为 mocha,断言库为 expect.js
4646

docs/zh-cn/how-to-write-a-react-component.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ author: [email protected]
2929
## 源码
3030

3131
- 在 src 目录中写 es2015 js,在 assets 目录下写 less,在 tests 目录下写 测试用例,代码规范参考 [react 组件代码规范](./component-code-style.md).
32-
- examples 中的 html 不可修改,通过 js 中的 jsx 渲染页面,通过 require css 引入 css
32+
- examples 中的 html 不可修改,通过 js 中的 jsx 渲染页面,通过 import css 引入 css
3333
- 开发中用到其他公共库,通过 `npm install --save` 以及 `npm install --save-dev` 来安装
3434
- 组件设计可参考 [react 组件设计原则](./component-design.md).
3535

0 commit comments

Comments
 (0)