2015年9月底開(kāi)始正式接觸React native,公司的ios團(tuán)隊(duì)用它寫了一個(gè)安卓項(xiàng)目之后,到上周,公司徹底停止了RN的使用圾结。
至于我們?yōu)槭裁赐V故褂肦N,原因大致有兩個(gè):
一齿诉、RN對(duì)安卓的支持還不夠好筝野,而我們又恰恰選擇嘗試用RN來(lái)搞安卓端晌姚。
二、公司眼前的項(xiàng)目較多歇竟,把所有項(xiàng)目全部停用原生改用RN也不太實(shí)際挥唠。
盡管公司目前暫時(shí)停止了RN這個(gè)技術(shù)棧,但是我個(gè)人不會(huì)停止對(duì)RN的關(guān)注焕议。
? ? ? 環(huán)境配置就不贅述了宝磨,關(guān)于RN的一些網(wǎng)站里的文檔已經(jīng)相當(dāng)詳細(xì)了。只是所有文檔基本都告訴你安裝Watchman和Flow盅安,實(shí)際只是推薦你安裝唤锉,所以不安裝完全不影響你的開(kāi)發(fā),而且在RN的更新版本中有的時(shí)候安裝了Watchman反而會(huì)導(dǎo)致一些不必要的麻煩别瞭。這里提一下窿祥,要不要安裝自己取舍吧。
? ? ? ?熟悉了RN的開(kāi)發(fā)流程之后蝙寨,再回到原生晒衩,多少會(huì)有不適感,其主要原因是RN的組件化真的有很多優(yōu)點(diǎn)墙歪,適應(yīng)之后就覺(jué)得各種好用听系。另一個(gè)原因就是調(diào)試效率高,基本晃一晃手機(jī)就能看到新代碼的效果虹菲,這個(gè)是原生所不能的靠胜。
? ? ? ?組件化和Flex布局是RN給我印象最深的,哦届惋,還有狀態(tài)State髓帽。文檔基本涵蓋了主流的移動(dòng)端控件了,只是在RN不再叫控件而是組件脑豹。CSS樣式的布局用Flex基本可以解決所有的需求了郑藏。至于狀態(tài)值改變,render重新渲染這個(gè)點(diǎn)瘩欺,確實(shí)方便必盖。
印象深刻的:
? ? ??RN Navigator教程
? ? ? Navigator的反向傳值,需要在設(shè)置initialRoute的時(shí)候同時(shí)用類似 " ... parameters " 的方式傳參俱饿,下一級(jí)界面可以直接通過(guò)this.props.parameters拿到從上個(gè)頁(yè)面?zhèn)鬟^(guò)來(lái)的值歌粥。至于反向傳值,也是通過(guò)parameters只是傳過(guò)去的是一個(gè)function拍埠,這點(diǎn)有點(diǎn)像ios里的Block失驶。如果返回之后需要重新渲染頁(yè)面的話那就得在function里面使用setState()了,或者通過(guò)組件的生命周期在ComponentShouldUpdate里面重新刷新枣购,當(dāng)然這個(gè)方法還有bug嬉探,并不是每次都成功擦耀。
? ? 上段提到的組件的生命周期,這篇博客會(huì)幫到你:React Native中組件的生命周期? ?
? ? ?ES5和ES6寫法對(duì)照表