欢迎收听React Native系列,基于Window10,偏向于Android端的React Native。上一章React Native入门到怀疑人生(二)我们已经成功运行了官方Demo,介绍了React.js、ES6相关学习资料,推荐了开发RN的编辑器,那么本章节将讲解RN的props属性,state状态,样式相关知识。本章将使用ES6语法。请各位系好安全带,本章节我们将真正开始RN的开发。嘀!老年卡。文章不当之处,希望大家及时指出,多谢!
准备工作
新建一个react Project,用于我们本章内容讲解
note:react-native init "ProjectName"
webstorm安装RN提示插件
使用webstorm打开,

Props(属性)讲解
组件(可以理解为Android的控件)在创建的时候,我们都会赋予相应的参数,这些参数就相当于props(属性),还是上代码吧,代码理解起来简单点。
|
|
代码中已添加注释
代码中的{ { pic } }
是JSX语法,JSX语法的基本规则如下
- 1 遇到 HTML 标签(以 < 开头),就用 HTML 规则解析;遇到代码块(以 { 开头),就用 JavaScript 规则解析
- 2 JSX 允许直接在模板插入 JavaScript 变量。如果这个变量是一个数组,则会展开这个数组的所有成员
- 3 组件类的PropTypes属性,就是用来验证组件实例的属性是否符合要求(可以了解下)
代码中的 import {AppRegistry, Image} from 'react-native'
为ES6语法等价与ES5中的var AppRegistry = require('./AppRegistry')
代码中registerComponent()方法的第一个参数'FirstRNProject'
必须和android\app\src\main\java\com\firstrnproject\MainActivity
类中的getMainComponentName()方法返回的String保持一致

state(状态)讲解
我们使用两种数据来控制一个组件:props和state。props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。 对于需要改变的数据,我们需要使用state。
一般来说,你需要在constructor中初始化state(译注:这是ES6的写法,早期的很多ES5的例子使用的是
getInitialState
方法来初始化state,这一做法会逐渐被淘汰),然后在需要修改时调用setState方法。假如我们需要制作一段不停闪烁的文字。文字内容本身在组件创建时就已经指定好了,所以文字内容应该是一个prop。而文字的显示或隐藏的状态(快速的显隐切换就产生了闪烁的效果)则是随着时间变化的,因此这一状态应该写到state中。
摘自ReactNative中文网,这段话对state的描述非常透彻。
这里补充一点getInitialState方法在很多现有的库中发现此类写法,其实就是对state进行赋值的。
|
|
代码中的=>
箭头函数为ES6语法可参考下面代码
😂不会录gif,后期补充
样式
在React Native中,你并不需要学习什么特殊的语法来定义样式。我们仍然是使用JavaScript来写样式。所有的核心组件都接受名为style的属性。这些样式名基本上是遵循了web上的CSS的命名,只是按照JS的语法要求使用了驼峰命名法,例如将background-color改为backgroundColor。
style属性可以是一个普通的JavaScript对象。这是最简单的用法,因而在示例代码中很常见。你还可以传入一个数组——在数组中位置居后的样式对象比居前的优先级更高,这样你可以间接实现样式的继承。
实际开发中组件的样式会越来越复杂,我们建议使用StyleSheet.create来集中定义组件的样式。比如像下面这样
|
|

样式基本使用和JavaScript里面的使用一样,暂时不做赘述。
##参考资料