一、搭建環(huán)境:
1、ios調(diào)試環(huán)境很簡單就搭建好了,但安卓不熟悉,需要研究研究了。
(1)iOS模擬器調(diào)試很方便,修改js代碼后,到模擬器,cmd+R就可以看到效果了
(2)cmd+D,可以調(diào)出一些操作選項,很方便。
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
對于安卓需要注意,一方面是環(huán)境要搭建好,另一方面要先啟動好一個模擬器或者連接好一臺真機。
二、一些基礎概念
1、props:大多數(shù)組件在創(chuàng)建時就可以使用各種參數(shù)來進行定制,用于定制的這些參數(shù)就稱為props(屬性),最常見的屬性,就是組件的style屬性了
2、state:props是在父組件中指定,而且一經(jīng)指定,在被指定的組件的生命周期中則不再改變。 對于需要改變的數(shù)據(jù),我們需要使用state。
3、style:所有的核心組件都接受名為style的屬性,它可以是一個js對象,也可以是一個數(shù)組,數(shù)組中位置居后的樣式對象比居前的優(yōu)先級更高,這樣你可以間接實現(xiàn)樣式的繼承。通過設置樣式,可以使組件外觀表現(xiàn)更豐富。常見的樣式包括:
(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組件用于顯示一個垂直的滾動列表,其中的元素之間結構近似而僅數(shù)據(jù)不同
(1)FlatList更適于長列表數(shù)據(jù),且元素個數(shù)可以增刪。和ScrollView不同的是,F(xiàn)latList并不立即渲染所有元素,而是優(yōu)先渲染屏幕上可見的元素
(2)FlatList組件必須的兩個屬性是data和renderItem。data是列表的數(shù)據(jù)源,而renderItem則從數(shù)據(jù)源中逐個解析數(shù)據(jù),然后返回一個設定好格式的組件來渲染
7、SectionList:相對于FlatList,它可以分組
四、網(wǎng)絡
1、普通Http請求,使用Fetch API
2、全雙工通信,使用WebSocket
五、原理說明:
1、http://www.itdecent.cn/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混編:http://www.itdecent.cn/p/f1deb1af3826
七、法律問題:https://www.zhihu.com/question/65437198
八、應用:
1、安卓和iOS在很多地方實現(xiàn)有一定差異,我們要做的是盡量復用代碼,不可避免時也需要針對平臺的差異性,寫兩份代碼
2、有些功能RN沒有,只能調(diào)用原生API時(比如日歷),還是只能進行混編,所以RN是不可能取代原生代碼的,二者最終只會進入一種平衡狀態(tài)
3、創(chuàng)業(yè)公司為節(jié)省人力,RN在這方面有很大用武之地。但對于大公司,使用原生API似乎更有優(yōu)勢。