一、搭建环境:
1、ios调试环境很简单就搭建好了,但安卓不熟悉,需要研究研究了。
(1)iOS模拟器调试很方便,修改js代码后,到模拟器,cmd+R就可以看到效果了
(2)cmd+D,可以调出一些操作选项,很方便。
2、运行:推荐方式为
(1)To run your app on iOS:
cd /Users/mac/Desktop/rntest
react-native run-ios
- or -
Open ios/rntest.xcodeproj in Xcode
Hit the Run button
(2)To run your app on Android:
cd /Users/mac/Desktop/rntest
Have an Android emulator running (quickest way to get started), or a device connected
react-native run-android
对于安卓需要注意,一方面是环境要搭建好,另一方面要先启动好一个模拟器或者连接好一台真机。
二、一些基础概念
1、props:大多数组件在创建时就可以使用各种参数来进行定制,用于定制的这些参数就称为props(属性),最常见的属性,就是组件的style属性了
2、state:props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。 对于需要改变的数据,我们需要使用state。
3、style:所有的核心组件都接受名为style的属性,它可以是一个js对象,也可以是一个数组,数组中位置居后的样式对象比居前的优先级更高,这样你可以间接实现样式的继承。通过设置样式,可以使组件外观表现更丰富。常见的样式包括:
(1)view组件最基本的backgroundColor、width和height
(2)view组件用于适配的flex、flexDirection、justifyContent、alignItems
(3)需要更丰富且可复用的样式,可以StyleSheet.create来集中定义组件的样式
三、一些标准组件
1、View组件:常用作其他组件的容器,来帮助控制布局和样式
2、Text组件:类似于label
3、Image组件:有一个source属性,传入的是图片地址
4、TextInput:允许用户在应用中通过键盘输入文本,有很多玩法,慢慢熟悉吧~
5、ScrollView是一个通用的可滚动的容器
6、FlatList组件用于显示一个垂直的滚动列表,其中的元素之间结构近似而仅数据不同
(1)FlatList更适于长列表数据,且元素个数可以增删。和ScrollView不同的是,FlatList并不立即渲染所有元素,而是优先渲染屏幕上可见的元素
(2)FlatList组件必须的两个属性是data和renderItem。data是列表的数据源,而renderItem则从数据源中逐个解析数据,然后返回一个设定好格式的组件来渲染
7、SectionList:相对于FlatList,它可以分组
四、网络
1、普通Http请求,使用Fetch API
2、全双工通信,使用WebSocket
五、原理说明:
1、https://www.jianshu.com/p/5cc61ec04b39
2、不错的博客:http://blog.csdn.net/xiangzhihong8/article/category/5975059
六、例子:
1、https://segmentfault.com/a/1190000011078576
2、https://f8-app.liaohuqiu.net/#content
3、rn与oc混编:https://www.jianshu.com/p/f1deb1af3826
七、法律问题:https://www.zhihu.com/question/65437198
八、应用:
1、安卓和iOS在很多地方实现有一定差异,我们要做的是尽量复用代码,不可避免时也需要针对平台的差异性,写两份代码
2、有些功能RN没有,只能调用原生API时(比如日历),还是只能进行混编,所以RN是不可能取代原生代码的,二者最终只会进入一种平衡状态
3、创业公司为节省人力,RN在这方面有很大用武之地。但对于大公司,使用原生API似乎更有优势。