Skip to content

Commit ee5eb1a

Browse files
committed
sync upstream to 2017.03.14, add mixins guide
1 parent 3e5e150 commit ee5eb1a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

react/README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
1. [基本规范](#basic-rules-基本规范)
88
1. [Class vs React.createClass vs stateless](#创建模块)
9+
1. [Mixins](#mixins)
910
1. [命名](#naming-命名)
1011
1. [声明模块](#declaration-声明模块)
1112
1. [代码对齐](#alignment-代码对齐)
@@ -29,7 +30,7 @@
2930
## 创建模块
3031
Class vs React.createClass vs stateless
3132

32-
- 如果你的模块有内部状态或者是`refs`, 推荐使用 `class extends React.Component` 而不是 `React.createClass` ,除非你有充足的理由来使用这些方法.
33+
- 如果你的模块有内部状态或者是`refs`, 推荐使用 `class extends React.Component` 而不是 `React.createClass`.
3334
eslint: [`react/prefer-es6-class`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prefer-es6-class.md) [`react/prefer-stateless-function`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prefer-stateless-function.md)
3435

3536
```jsx
@@ -71,6 +72,12 @@
7172
}
7273
```
7374

75+
## Mixins
76+
77+
- [不要使用 mixins](https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html).
78+
79+
> 为什么? Mixins 会增加隐式的依赖,导致命名冲突,并且会以雪球式增加复杂度。在大多数情况下Mixins可以被更好的方法替代,如:组件化,高阶组件,工具模块等。
80+
7481
## Naming 命名
7582

7683
- **扩展名**: React模块使用 `.jsx` 扩展名.
@@ -360,6 +367,7 @@
360367
SFC.propTypes = {
361368
foo: PropTypes.number.isRequired,
362369
bar: PropTypes.string,
370+
children: PropTypes.node,
363371
};
364372
SFC.defaultProps = {
365373
bar: '',
@@ -386,7 +394,7 @@
386394

387395
## Parentheses 括号
388396

389-
- 将多行的JSX标签写在 `()`里. eslint: [`react/wrap-multilines`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/wrap-multilines.md)
397+
- 将多行的JSX标签写在 `()`里. eslint: [`react/jsx-wrap-multilines`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-wrap-multilines.md)
390398

391399
```jsx
392400
// bad

0 commit comments

Comments
 (0)