getInitialState()
组件在安装之前,会调用 getInitialState 来初始化组件的状态,返回值被用作 this.state 的初始值来使用。
注意:在 ES6 中,使用下面方式设置初始化值:1
2
3
4
5
6
7class Counter extends React.Component {
constructor(props) {
super(props);
this.state = {count: props.initialCount};
}
// ...
}
getDefaultProps()
在创建类的时候调用并缓存,如果该组件没有从父组件获得到 props,可以通过这个方法设置默认值。这个组件创建的值不能够跨实例共享,不会被赋值。
注意:在 ES6 中,可以使用下面的方式设置默认值:
1 | class Greeting extends React.Component { |
propTypes
该 propTypes 对象能够验证传递给组件的 props 的类型:
1 | propTypes: { |
更多详细信息可参考这里
componentWillMount()
函数原型:1
void componentWillMount()
这个方法是在组件创建并初始化之后,在第一次 render() 之前调用,可以做一些业务初始化操作,也可以设置㢟状态。这个函数在整个生命周期中只被调用一次。
componentDidMount()
函数原型:1
void componentDidMount()
组件第一次 render() 之后,只会调用一次。可以再这个函数中操作子组件。需要注意的是,React Native 是先调用子组件的 componentDidMount() ,然后在调用父组件的函数。可以在这个组件当中设置计时器或者网络请求等。调用这个函数完毕后,就等待触发其他事件。
componentWillReceiveProps()
函数原型:1
2
3void componentWillReceiveProps(
object nextProps
)
当组件收到新的 props,就会调用该函数。举个例子:
1 | // nextProps 是即将被设置的新的属性,旧的属性还可以通过 this.props 来获取。 |
shouldComponentUpdate()
函数原型:1
2
3boolean shouldComponentUpdate(
object nextProps, object nextState
)
当组件接收到新的 props 和 state 改变的话,会触发调用该方法。参数 nextProps 和 componentWillReceiveProps 函数一样。参数 nextState 表示组件即将更新的状态值。返回参数决定是否需要更新组件,如果 true 表示更新,继续向下执行。否则表示不更新,直接进入等待状态。
默认情况下,该函数永远返回 true 来保证数据变化的时候 UI 能同步更新,也可以通过检查属性变化前后来决定 UI 是否更新来提高应用性能。
componentWillUpdate()
函数原型:1
2
3void componentWillUpdate(
object nextProps, object nextState
)
shouldComponentUpdate 函数返回 true,并且 nextProps 或者 nextState 发生改变时,就会开始更新组件。
注意:这个方法里面不能调用 this.setState() 来修改状态,这个函数调用之后,就会把 nextProps 和 nextState 分别设置到 this.props 和 this.state 中。紧接着这个函数,就会调用 render() 来更新界面了。
componentDidUpdate()
函数原型:1
2
3void componentDidUpdate(
object prevProps, object prevState
)
这里已经完成 props 和 state 状态的更新,此函数的输入参数就变成了 prevProps 和 prevState。
componentWillUnmount()
函数原型:1
void componentWillUnmount()
组件销毁的时候调用,可以做一些组件相关的清理工作,例如取消计时器等。