React-Native的组件容器和生命周期

React-Native-Logo

组件特性

当我们创建一个组件类的时候,React会调用React.createClass()方法,这个时候我们需要提供一个渲染视图View的render()方法,这个方法是必须的,当然,一个组件包含了很多其它的生命周期方法。

1
在创建组件的时候,我们可以使用传统的javascript,同时我们也可以使用[es6 classes]

render

1
ReactElement render()

render()是创建一个组件的必须方法,当它被调用时,它会检查this.propsthis.stae,并且会返回一个唯一的子元素。这个子元素可以是一个DOM元素(<div />),也可以是一个React Dom元素(React.DOM.div()),当然它还可以是其它任何你定义过的组件。

当然,你也可以返回null或者false只要你确定你不需要通过它们渲染视图。在可见视图的背后,我们会使用<noscript>标记来进行版本算法的对比工作。当返回null或者false的时候,ReactDOM.findDOMNode(当前类)将返回null

render()方法必须是纯净的,意思是说,在这个方法内部我们不能修改组件的状态,它每次调用时都会返回state的原始状态,并且它不会从DOM当中读取或者修改取值,也不会与浏览器进行交互(比如,使用setTimeout),如果你需要与浏览器交互,建议通过componentDidMount()或者其它的组件生命周期方法来完成。保持render()方法的简洁能使服务器能更好的加载数据,同时使业务逻辑更加清晰。

getInitialState

1
object getInitialState()

这个方法是在组件加载之前调用的,并且它只会被调用一次,这个方法返回的初始值用在this.state当中。

getDefaultProps

1
object getDefaultProps()

这个方法会在类创建完成之后调用一次。如果这个prop在父类当中没有特殊处理(比如使用in检查),mapping中的值会在this.props当中设置。

这个方法调用是在实例之前,因此不能依靠this.props。此外,需要注意的是,getDefaultProps返回的任何复杂对象将在实例中共享,不能复制。

propTypes

mixins

statics

displayName