React Native生命周期
componentWillMount //最初渲染之前调用
componentDidMount //渲染结束后调用一次
componentWillReceiveProps //在component接收到新的参数前调用
shouldComponentUpdate //每次重新触发渲染之前调用
nextProps //下一个状态的参数
nextState //下一个状态对象
componentWillUpdate //重新渲染之前调用
componentDidUpdate //从新渲染结束后调用
componentWillUnmount //在被删除之前调用
Props
属性传递,单向。
每一个组件都有可变与不可变的属性,props就是不可变的属性,当props改变时,组件的绘制方法不会被调用
一般性我们自定义原生UI组件,或者拿几个View,Text拼装成一个新View的时候,可以用到,举个例子:
const props = {
item_text : this.state.item_text,
item_image : this.state.item_image,
};
<CButton text={"hello world!"} {...props}/>
我们在CButton可以使用this.props.text
state
state就是组件的可变属性,state的改变会触发组件的render函数,react与其他mvvm框架的最大的不同点就是,react可以想象成状态机,状态的改变会重绘UI,然后根据dom diff算法来绘制UI,而其他的mvvm框架则是对js对象的dirty check(Angulars)或者defineProperty时指定的回调函数(Emberjs),因此,状态机制与dom diff的存在声称React更快。 React靠一个state来维护状态,当state发生变化则更新Dom
refs
refs主要用在上级组件调用下级组件的场景
componentDidMount
组件UI渲染完毕后调用,常用在这种业务场景,调用ajax获得数据后,渲染UI