React Native推行至今,已有一段历史,目前已到0.46版本,环境配置在此不赘述,列一下创建项目的常用命名
react-native init ProjectName
cd ProjectName
react-native run-ios```
在这边有个小坑点:
>init命令默认会创建最新的版本,而目前最新的0.45版本需要下载boost库编译。此库体积庞大,在国内即便翻墙也很难下载成功,导致很多人无法正常运行iOS项目,推荐暂时使用0.44.3的版本。
由于之前一直是断断续续学习,所以环境配置包括一些运行的坑,就不列出了。今天整理了一下几个知识点:
##生命周期
一个实例被创建所调用的生命周期方法。首次使用一个组建类时,会看到下面这些方法依次被调用:
getDefaultProps
getInitialState
componentWillMount
render
ComponentDidMOunt```
getDefaultProps这个只在初次被调用,后续该实例都是后续的几个方法。
随着应用状态的改变,以及组件逐渐受到影响,你将会看到下面的方法一次被调用:
componentwillReceiveProps
shouldComponentUpdate
componentWillUpdate
render
componentDidUpdate```
销毁时:
`componentWillUnmount`
在这摘录一篇博客中描述,可以具体了解每个函数作用:
>getDefaultProps
对于组件来说,这个方法只会调用一次,对于那些没有父辈组件指定的props属性的新建实例来说,这个方法返回的对象可用与为实例设置默认的props值。
getInitalState:
对于组件的每个实例来说,这个方法调用次数有且仅有一次,这里你将有机会初始化每个实例的state,与getDefaultProps方法不同的是,每次实例创建时该方法都会被调用一次,这个方法中,可以访问到this.props.
componentWillMount:
该方法在完成首次渲染之前被调用,这也是在render方法调用前可以修改组件state的最后一次机会。
render:
在这里你创建一个虚拟DOM,用来表示组件的输出,对于一个组件来说,render是唯一一个必需的方法,并且有特定的规则。render方法选要满足下面几点:
只能通过this.props和this.state访问数据。
可以返回null,false或者任何React组件。
只能出现一个顶级组件(不能返回一组元素)、
必须纯净,有位置不能改变组件状态或者修改DOM输出。
componentDidMount:
在render方法成功调用并且真实的DOM已经被渲染之后,可以在componentDidMount内部通过this.getDOMNode(方法访问到它。
这就是你可以访问原始DOM的生命周期的钩子函数.
#总结一下:
getInitalState初始化数据,componentWillMount可以参考iOS的ViewWillAppear,componentDidMount可以参考iOS的ViewDidAppear.