React Native 試水

React Native 是大臉書出品的一個(gè)移動(dòng)開發(fā)框架, 可以用前端的技術(shù), 寫出 Android iOS 原生的效果和性能, 地圖, 傳感器等相關(guān)的 API 也都經(jīng)過封裝, 可以用 JS 調(diào)用

  • RN 是用前端技術(shù)來寫的, 所以 npm 中的 百萬 + 庫都可以使用
  • 不過 UI 方面的庫不是很完善, 所以最好會(huì) Android 或者 iOS 的原生開發(fā), 而且很多第三方的服務(wù), 比如分享, 第三方登錄, 廣告 等等都需要用原生的技術(shù)封裝暴露給 JS
  • 所以現(xiàn)階段用純 RN 寫跨平臺(tái)項(xiàng)目還是很難實(shí)現(xiàn)的
  • 這個(gè)界面就是用 RN 實(shí)現(xiàn)的, 根本看不出來和其它原生頁面的區(qū)別,
  • 附近的老師 右側(cè)的3個(gè)圓圈, 是 Swift 的原生 View, 然后暴露給 JS 使用
  • 如果 React 很 6 的話, 實(shí)現(xiàn)起來確實(shí)很快快捷, 不過點(diǎn)擊之后的各種操作處理可能會(huì)比較復(fù)雜, 后面我們來說巧妙的解決辦法.

Getting Started

由于 RN 發(fā)展和 版本迭代的速度很快, 所以學(xué)習(xí) RN 首要參考的就是官方文檔

  1. 安裝 RN 有 2 種情況,
    1. 從 0 開始純 RN 項(xiàng)目
    2. 已有的 OC Swift 項(xiàng)目 接入 RN

第一種情況 :

你需要 react-community/create-react-native-app, 和 Expo 的幫助, 它們倆能幫助你脫離 Android Studio 和 Xcode 進(jìn)行編譯, 打包, 發(fā)布應(yīng)用

第二種情況 :

隨著 Integration With Existing Apps 的指導(dǎo)就可以了, 需要你稍微了解一點(diǎn) npm , 也就是 JS 版的 Cocoapods

接下來

前端這兩年真的是一直在搞事情, ES 6, React, Vue, Node js ==, 簡(jiǎn)直是顛覆式的發(fā)展

下面是幾個(gè)不錯(cuò)的資源, 幫助你了解 ES 6 等標(biāo)準(zhǔn)的發(fā)展

ES5, ES6, ES2016, ES.Next: JavaScript 的版本是怎么回事?「譯」
ECMAScript-6-features
Babel : Learn ES2015
阮一峰 : ECMAScript 6 入門

建議先把官方文檔的 The Basic 看完, 你就會(huì)大概對(duì) RN 有個(gè)了解了

剩下的就是熟悉 Component 和 強(qiáng)行寫 React 的代碼了

FlexBox 布局

  • FlexBox 和 AutoLayout 的差別還是很多的, 有點(diǎn)像 Android LinearLayout 或者 StackView 的升級(jí)版, 不過學(xué)習(xí)成本很低
  • 我在使用過程中, 除了發(fā)現(xiàn), 偶爾需要多加一層不必要的 Container View 來調(diào)整布局之外, 沒有什么明顯的缺點(diǎn)

幾篇 FlexBox 的教程, 學(xué)習(xí)難度很低

Layout with Flexbox
Understanding React Native flexbox layout
A Complete Guide to Flexbox

熱更新

CodePush 是大微軟出品的, 適用于 RN 的熱更新解決方案, 是一個(gè) 好用, 免費(fèi)的熱更新平臺(tái)

Debug 時(shí) 調(diào)試 CodePush 是否生效, 可以再 didLoadFinish 加入 RCTSetLogThreshold(.trace), 然后插線連接 Mac, 用 Console 過濾 Codepush 看日志

原生接口暴露給 JS

這個(gè)問題可以簡(jiǎn)單的分為兩種,

  1. 原生的方法暴露給 JS 調(diào)用
  2. 原生的 UIView 暴露給 JS 調(diào)用

由于 RN 的迭代速度很快, 所以首要參考的就是 官方文檔, 索性文檔寫的很棒棒哦...
Swift 和 OC 的都有相關(guān)的文檔, 原生的 Swift UI 可以參考 pure-swift-views-react-native

Native Modules
Native UI Components

許多原生的 API 封裝, 被分成 XXXiOS , XXXAndroid, 這些是平臺(tái)的特殊實(shí)現(xiàn), 我們也可以找一些第三方的, 跨平臺(tái)的實(shí)現(xiàn)

最后

我的個(gè)人項(xiàng)目的其中一個(gè)頁面, 用 RN 試水, 效果不錯(cuò), 就是文章開頭的截圖,
RN 是一個(gè)潛力很大的項(xiàng)目, 今后希望能更多的接觸 RN,

關(guān)于原生和 JS 調(diào)用方法, 跳轉(zhuǎn)界面

  1. 比較 Trick 的實(shí)現(xiàn)是, 全都使用 Router, 比如 點(diǎn)擊 RN 的一個(gè)按鈕, 觸發(fā) sixue://userDetail/666 這個(gè) router, 含義是查看到用戶 id 為 666 的詳情界面
  2. 這樣逼迫你把所有的 ViewContoller 寫的更模塊化更獨(dú)立, 然后按鈕觸發(fā)的效果也可以在后臺(tái)動(dòng)態(tài)的修改, 所有 RN 端的事件處理都用 router 轉(zhuǎn)到 Native 端接收并處理
  3. 這樣大部分的 UI 界面都可以用 RN 跨屏臺(tái)的書寫完成, 提高了效率
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窄俏,一起剝皮案震驚了整個(gè)濱河市噪漾,隨后出現(xiàn)的幾起案子仰挣,更是在濱河造成了極大的恐慌,老刑警劉巖诈豌,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件水泉,死亡現(xiàn)場(chǎng)離奇詭異爸业,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)恐疲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門腊满,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人培己,你說我怎么就攤上這事碳蛋。” “怎么了省咨?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵肃弟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我茸炒,道長(zhǎng)愕乎,這世上最難降的妖魔是什么阵苇? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮感论,結(jié)果婚禮上绅项,老公的妹妹穿的比我還像新娘。我一直安慰自己比肄,他們只是感情好快耿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芳绩,像睡著了一般掀亥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妥色,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天搪花,我揣著相機(jī)與錄音,去河邊找鬼嘹害。 笑死撮竿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笔呀。 我是一名探鬼主播幢踏,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼许师!你這毒婦竟也來了房蝉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤微渠,失蹤者是張志新(化名)和其女友劉穎搭幻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逞盆,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粗卜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纳击。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡攻臀,死狀恐怖焕数,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刨啸,我是刑警寧澤堡赔,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站设联,受9級(jí)特大地震影響善已,放射性物質(zhì)發(fā)生泄漏灼捂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一换团、第九天 我趴在偏房一處隱蔽的房頂上張望悉稠。 院中可真熱鬧,春花似錦艘包、人聲如沸的猛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卦尊。三九已至,卻和暖如春舌厨,著一層夾襖步出監(jiān)牢的瞬間岂却,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工裙椭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留躏哩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓骇陈,卻偏偏與公主長(zhǎng)得像震庭,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子你雌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容