@@ -30,7 +30,7 @@ ES6 中的 class 与 `createReactClass()` 方法十分相似,但有以下几
30
30
31
31
## 声明默认属性 {#declaring-default-props}
32
32
33
- 如果使用函数和 ES6 的 class 关键字创建组件,可以直接把自定义属性对象写到组件的 ` defaultProps ` 属性中 :
33
+ 无论是函数组件还是 class 组件,都拥有 ` defaultProps ` 属性 :
34
34
35
35
``` javascript
36
36
class Greeting extends React .Component {
@@ -42,7 +42,7 @@ Greeting.defaultProps = {
42
42
};
43
43
```
44
44
45
- 如果使用 ` createReactClass() ` 方法创建组件,那就需要在参数对象中定义 ` getDefaultProps() ` 方法,并且在这个方法中返回包含自定义属性的对象 :
45
+ 如果使用 ` createReactClass() ` 方法创建组件,那就需要在组件中定义 ` getDefaultProps() ` 函数 :
46
46
47
47
``` javascript
48
48
var Greeting = createReactClass ({
@@ -57,7 +57,7 @@ var Greeting = createReactClass({
57
57
});
58
58
```
59
59
60
- ## 设置初始状态 {#setting-the-initial-state}
60
+ ## 初始化 State {#setting-the-initial-state}
61
61
62
62
如果使用 ES6 的 class 关键字创建组件,你可以通过给 ` this.state ` 赋值的方式来定义组件的初始 state:
63
63
@@ -173,11 +173,11 @@ class SayHello extends React.Component {
173
173
>
174
174
> ES6 本身是不包含任何 mixin 支持。因此,当你在 React 中使用 ES6 class 时,将不支持 mixins 。
175
175
>
176
- > ** 我们也发现了很多使用 mixin 然后出现了问题的代码库。[ 并且不建议在新代码中使用 mixin ] ( /blog/2016/07/13/mixins-considered-harmful.html ) 。**
176
+ > ** 我们也发现了很多使用 mixins 然后出现了问题的代码库。[ 并且不建议在新代码中使用它们 ] ( /blog/2016/07/13/mixins-considered-harmful.html ) 。**
177
177
>
178
178
> 以下内容仅作为参考。
179
179
180
- 如果完全不同的组件有相似的功能,这就会产生[ "横切关注点" 问题 (cross-cutting concerns)] ( https://en.wikipedia.org/wiki/Cross-cutting_concern ) 。针对这个问题,在使用 createReactClass 创建 React 组件的时候,引入 ` mixin ` 功能会是一个很好的解决方案。
180
+ 如果完全不同的组件有相似的功能,这就会产生[ "横切关注点(cross-cutting concerns)"问题 ] ( https://en.wikipedia.org/wiki/Cross-cutting_concern ) 。针对这个问题,在使用 createReactClass 创建 React 组件的时候,引入 ` mixins ` 功能会是一个很好的解决方案。
181
181
182
182
一个常见的使用情景是,一个组件每隔一段时间需要更新。使用 ` setInterval() ` 可以很容易实现这个功能,但更重要的是,当你不再需要它时,你应该删掉它以节省内存。React 提供了[ 生命周期方法] ( /docs/working-with-the-browser.html#component-lifecycle ) ,这样你就可以知道一个组件何时被创建或被销毁了。让我们创建一个简单的 mixin,它使用这些方法提供一个简单的 ` setInterval() ` 函数,它会在组件被销毁时被自动清理。
183
183
@@ -222,4 +222,4 @@ ReactDOM.render(
222
222
);
223
223
```
224
224
225
- 如果一个组件有多个 mixin,且其中几个 mixin 中定义了相同的生命周期方法(比如都会在组件被摧毁的时候执行),那么这些生命周期方法是一定会被调用的。通过 mixin 定义的方法,执行顺序也与定义时的顺序一致,且会在组件上的方法执行之后再执行 。
225
+ 如果组件拥有多个 mixins,且这些 mixins 中定义了相同的生命周期方法(例如,当组件被销毁时,几个 mixins 都想要进行一些清理工作),那么这些生命周期方法都会被调用的。使用 mixins 时,mixins 会先按照定义时的顺序执行,最后调用组件上对应的方法 。
0 commit comments