react-native初探
1.简介
react-native是在react基础上推出来的使用js写原生iOS和Android页面的开源框架,许多语法和思想都是基于React,一开始学习RN直接上来就看RN的文档和例子,发现有很多东西都看得一知半解,后来仔细看了React的文档后才明白,许多东西在React写了React-native文档就没有说,所以十分建议先看React。看完React,其实React-Native也就差不多理解了,RN只不过是把web的View换成native的View。
2.start
- 首先使用 ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”安装HomeBrew
- 然后用
brew install nvm
安装nvm - 使用
nvm install node && nvm alias default node
安装node - ps:官网说的watchman和flow貌似可以不用安装
3.几个重点需要理解的地方
React在内存中维护一个快速响应的DOM描述。通过render()方法返回一个DOM的描述。DOM编写React页面主要有以下几个注意的点:
3.1.react提供了几个生命周期函数:
挂载: 组件被插入到DOM中。
更新: 组件被重新渲染,查明DOM是否应该刷新。
移除: 组件从DOM中移除。
挂载
getInitialState(): object
在组件被挂载之前调用。状态化的组件应该实现这个方法,返回初始的state数据。之后在其他地方可以使用this.state.xxx
来访问这个参数
componentWillMount()
在挂载发生之前立即被调用。
componentDidMount()
在挂载结束之后马上被调用。需要DOM节点的初始化操作应该放在这里。
更新
componentWillReceiveProps(object nextProps)
当一个挂载的组件接收到新的props的时候被调用。该方法应该用于比较this.props和nextProps,然后使用this.setState()来改变state。
shouldComponentUpdate(object nextProps,object nextState): boolean
当组件做出是否要更新DOM的决定的时候被调用。实现该函数,优化this.props和nextProps,以及this.state和nextState的比较,如果不需要React更新DOM,则返回false。
componentWillUpdate(object nextProps,object nextState)
在更新发生之前被调用。你可以在这里调用this.setState()。
componentDidUpdate(object prevProps,object prevState)
在更新发生之后调用。
移除
componentWillUnmount()
在组件移除和销毁之前被调用。清理工作应该放在这里。
3.2.两个变量:
this.state
和this.props
。this.state
变量在getInitialState()
函数里设置,而this.props
通过父控件的调用传递到子控件,fackbook建议最好所有的数据都从父级而来,结构能更加清晰。