很久之前就想研究React Native了,但是一直沒有落地的機會,我一直認為一個技術(shù)要有落地的場景才有研究的意義,剛好最近迎來了新的APP,在可控的范圍內(nèi),我們可以在上面做任何想做的事情。

PS:任何新技術(shù)的嘗鮮都一定要控制在自己能控制的范圍內(nèi),失敗了會有可替換方案,不要引起不可逆的問題,這樣會給團隊造成災難性的后果。

事實上,RN經(jīng)過一段時間發(fā)展,已經(jīng)有充分數(shù)量的人嘗試過了,就我身邊就有幾批,褒貶也不一:

① 做UI快

② 還是有很多限制,不如原生Native

③ 入門簡單,能讓前端快速開發(fā)App

④ iOS&Android大部分代碼通用

⑤ code-push能做熱更新,但是用不好依舊坑

......

在得到一些信息后,可以看出,要用RN高效率的做出比較不錯的App是有可能的,單看投入度與最初設(shè)計是否合理,而且現(xiàn)在關(guān)于React Native的各種文檔是相當豐富的,所以這個階段想切入RN可能是一個不錯的選擇。

帶著試試不吃虧的想法,我們開始今天的學習,這里是一些比較優(yōu)質(zhì)的學習資料:

https://github.com/reactnativecn/react-native-guide

準備階段

搭建開發(fā)環(huán)境

http://reactnative.cn/docs/0.36/getting-started.html

官方的例子其實寫的很好了,我照著官方的例子能很好的跑起來,大家自己去看看吧

這里在運行時候要注意一下,我因為開啟了FQ工具,一運行就crash,這里猜測是翻(科學上網(wǎng)法)墻工具對localhost造成了影響,導致不能讀取文件,這個可能涉及到RN底層實現(xiàn),我們后面深入了再去做研究,這里關(guān)閉FQ工具即可。

然后第二個問題,是http的圖片展示不出來,這里折騰了很久,卻發(fā)現(xiàn)后面的章節(jié)有了說明,app默認只支持https的鏈接,這里大家改下配置即可:

https://segmentfault.com/a/1190000002933776

RN中的js使用的是比較新的語法,這里也需要大家進行學習,我學習的感受是ES6提供了很多語法糖,但是有幾個東西也要注意。

Class

JavaScript之前的繼承全部是復寫原型鏈模擬實現(xiàn)的,作為大型應用框架,繼承是必不可少的,所以ES6直接將這塊API化了,我這里寫一個簡單的demo: