很久之前就想研究React Native了,但是一直沒有落地的機(jī)會,我一直認(rèn)為一個技術(shù)要有落地的場景才有研究的意義,剛好最近迎來了新的APP,在可控的范圍內(nèi),我們可以在上面做任何想做的事情。
PS:任何新技術(shù)的嘗鮮都一定要控制在自己能控制的范圍內(nèi),失敗了會有可替換方案,不要引起不可逆的問題,這樣會給團(tuán)隊(duì)造成災(zāi)難性的后果。
事實(shí)上,RN經(jīng)過一段時間發(fā)展,已經(jīng)有充分?jǐn)?shù)量的人嘗試過了,就我身邊就有幾批,褒貶也不一:
① 做UI快
② 還是有很多限制,不如原生Native
③ 入門簡單,能讓前端快速開發(fā)App
④ iOS&Android大部分代碼通用
⑤ code-push能做熱更新,但是用不好依舊坑
......
在得到一些信息后,可以看出,要用RN高效率的做出比較不錯的App是有可能的,單看投入度與最初設(shè)計是否合理,而且現(xiàn)在關(guān)于React Native的各種文檔是相當(dāng)豐富的,所以這個階段想切入RN可能是一個不錯的選擇。
帶著試試不吃虧的想法,我們開始今天的學(xué)習(xí),這里是一些比較優(yōu)質(zhì)的學(xué)習(xí)資料:
https://github.com/reactnativecn/react-native-guide
準(zhǔn)備階段
搭建開發(fā)環(huán)境
http://reactnative.cn/docs/0.36/getting-started.html
官方的例子其實(shí)寫的很好了,我照著官方的例子能很好的跑起來,大家自己去看看吧
這里在運(yùn)行時候要注意一下,我因?yàn)殚_啟了FQ工具,一運(yùn)行就crash,這里猜測是翻(科學(xué)上網(wǎng)法)墻工具對localhost造成了影響,導(dǎo)致不能讀取文件,這個可能涉及到RN底層實(shí)現(xiàn),我們后面深入了再去做研究,這里關(guān)閉FQ工具即可。
然后第二個問題,是http的圖片展示不出來,這里折騰了很久,卻發(fā)現(xiàn)后面的章節(jié)有了說明,app默認(rèn)只支持https的鏈接,這里大家改下配置即可:
https://segmentfault.com/a/1190000002933776
RN中的js使用的是比較新的語法,這里也需要大家進(jìn)行學(xué)習(xí),我學(xué)習(xí)的感受是ES6提供了很多語法糖,但是有幾個東西也要注意。
Class
JavaScript之前的繼承全部是復(fù)寫原型鏈模擬實(shí)現(xiàn)的,作為大型應(yīng)用框架,繼承是必不可少的,所以ES6直接將這塊API化了,我這里寫一個簡單的demo:
1 class Animal {