生活随笔
收集整理的這篇文章主要介紹了
Airbnb: React Native 从选择到放弃
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Airbnb 最近在 Medium 上發(fā)布了一系列文章詳細(xì)描述了 Airbnb 與 React Native 從選擇到放棄的整個(gè)心路歷程。
React Native at AirbnbThe TechnologyBuilding a Cross-Platform Mobile TeamMaking a Decision on React NativeWhat's Next for Mobile對(duì)于字多不看的同學(xué),可以簡(jiǎn)單看一下我下面的小結(jié)。
當(dāng)初為什么選擇 React Native
有限的開(kāi)發(fā)團(tuán)隊(duì)滿足不了日益增長(zhǎng)的業(yè)務(wù)需求
對(duì) React Native 的期望
快速開(kāi)發(fā)質(zhì)量有保證一次編寫,多平臺(tái)共享提升開(kāi)發(fā)體驗(yàn)我們所懷念的
跨平臺(tái),實(shí)際上有 95% 以上的共享代碼率。統(tǒng)一的 DSL。根據(jù)平臺(tái)也做具體的差異化實(shí)現(xiàn)。React 是個(gè)好東西。組件化,簡(jiǎn)單的生命周期,聲明式開(kāi)發(fā)迭代速度(熱更新 hot-reloading)我們?cè)?RN 生態(tài)基礎(chǔ)設(shè)施上的投資。性能,在絕大部分頁(yè)面上 RN 都表現(xiàn)得很流暢。(有性能問(wèn)題? shouldComponentUpdate, removeClippedSubviews, Redux 了解一下。)Redux 是個(gè)好東西。也是個(gè)好冗長(zhǎng)的東西。與 Native 的橋接,可以方便的封裝已有的 Native 庫(kù)。靜態(tài)分析,從 ESLint 到 prettierRN 的動(dòng)畫庫(kù)不錯(cuò)。JS/React 的開(kāi)源生態(tài)。Flexbox與 Web 平臺(tái)共享代碼。讓我們沮喪的
論成熟度,穩(wěn)定性,RN 比 不上iOS 和 Android 原生。由于 RN 的 Bug,有時(shí)我們必須維護(hù)自己的一個(gè) RN 分支。JS缺少類型系統(tǒng),Flow 太嚴(yán)格,TS 集成到已有項(xiàng)目也還有問(wèn)題。重構(gòu),重構(gòu)是不可能重構(gòu)的,又沒(méi)有類型系統(tǒng),只能掙扎著做靜態(tài)分析。JavaScriptCore 不一致性,更糟糕的是,現(xiàn)在都 8102年了,RN (Android)帶的還是不支持 ES 6 的 JSCRN 開(kāi)源庫(kù)質(zhì)量參差不齊。比如在 iOS 上正常的庫(kù)在 Android 上可能有意想不到的錯(cuò)誤(因?yàn)闉樽髡咭苍S只熟悉 iOS 和 RN,并不熟悉 Android)有時(shí)不得不白手起家,因?yàn)楹芏嗟幕A(chǔ)框架中的庫(kù)還沒(méi)有 的RN 封裝。崩潰監(jiān)控庫(kù)在 RN 上表現(xiàn)不是特別特定,而且在 RN + Native 錯(cuò)誤棧的跳轉(zhuǎn)要不要挑戰(zhàn)一下?Native Bridge 的由于 JS 的弱類型造成Native 與 JS通信 中類型的不匹配,容易造成錯(cuò)誤。(后悔沒(méi)早點(diǎn)用 TS 生成通信代碼。)啟動(dòng)時(shí)間,RN框架初始化需要幾秒,即使是在高端機(jī)器上。新開(kāi)頁(yè)面的渲染時(shí)間,0.4秒左右頁(yè)面第一次渲染費(fèi)時(shí)。APP 大小。至少增加 12M。直到目前都無(wú)法在 Android 上支持 64位。手勢(shì),iOS 和 Android 的手勢(shì) API 差距很大,不過(guò)喜聞react-native-gesture-handler 發(fā)布了 1.0 版本。長(zhǎng)列表,雖然 RN 團(tuán)隊(duì)很努力了,但是由于 RN 的異步通信機(jī)制,長(zhǎng)列表的流暢渲染,目前依然無(wú)解。React Native 升級(jí)是個(gè)坑。RN 中的 Accessibility就是個(gè)大坑。還有一些奇怪的 Bug,暫沒(méi)有修復(fù)。SavedInstanceState 在 Android 上跨進(jìn)程的坑。不是技術(shù)問(wèn)題的問(wèn)題
要用好 RN 你必須同時(shí)熟悉 iOS 和 Android ,當(dāng)然還有 RN 本身,這就對(duì)我們工程師提出了更多挑戰(zhàn)。團(tuán)隊(duì)的管理,責(zé)任的劃分。RN 文檔及相關(guān)資源不如 iOS 和 Android 的豐富。
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生
總結(jié)
以上是生活随笔為你收集整理的Airbnb: React Native 从选择到放弃的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。