當前位置:
首頁 > 科技 > 我對React Native的那些執念

我對React Native的那些執念

自 Facebook在 3月 26日的 F8開發者大會上開源了 React Native後,React Native獲得了極大的關注,越來越多的公司開始採用 React Native來作為技術選型。雖然 React Native得到了社區等眾多開發者的支持,但實際開發中的坑仍然很多,並且在短期內不會消失,因此對於 React Native的使用者來說,你應該了解 React Native開發路線,避免掉坑出不來。

本次,我們有幸採訪到了 React Native 中文網的站長羅晴明老師,作為 React Native 中文文檔主要維護者之一,讓我們來聽聽他是如何看待當前國內使用 React Native的現狀。

嘉賓簡介

羅晴明 React Native中文網站長

專註於 Web 前端和移動開發領域,在國內頂級的互聯網公司有近 5 年的工作經驗,參與了多個重量級產品的研發過程,如網易新聞、搜狐視頻、百度視頻等。React Native 中文文檔主要維護者。

經驗豐富的培訓講師。曾維護管理 10 個 React Native 千人群,收集整理並研究解決了成千上萬個方方面面的 React Native 相關的問題。在騰訊課堂上推出的首份錄播入門課程,收穫大量好評。第三屆 NJSD 2017 全球軟體大會移動專場特邀演講講師,《iOS Web 應用開發:運用 HTML5、CSS3 與 JavaScript》北京圖靈文化發展有限公司 2013 年 8 月唯一譯者,《jQuery UI 開發指南》人民郵電出版社 2012 年 12 月第一譯者。

當年為什麼會想到研究 React Native這個技術,並且建立了 React Native中文網,這中間有什麼故事可以和我們分享的么?

羅晴明:13年從百度離職後曾經有嘗試自己創業做一個產品。作為一個前端開發者,理所當然是希望用 JavaScript去實現一切,其中最頭痛的就是移動端,當時選擇的方案是 Cordova(幾乎也沒有別的選擇),然而使出渾身解數也難以得到令人滿意的性能。放棄那個產品不久之後就接觸到了 React Native,跑了一下官方的 demo之後,立刻被那種流暢體驗給感動了。在學習 React Native的過程中,我感覺傳統前端的開發模式幾乎是被顛覆了,而在學習和使用過程中,我也意識到 React Native的文檔資料極度匱乏,而且太多報錯並不明確,可能涉及到完全你想不到的第三方模塊或是環境的問題。我當時就想著,應該把自己總結的一些問題經驗和大家分享,同時也在群里認識了鄧鋆(@天地之靈)大神,他也很看好 React Native,於是我們商量著做了一個 React Native中文網,最後於 2015年 11月上線並維護至今。

React Native和其他跨平台框架相比有哪些主要的區別和優點?

羅晴明:目前跨平台的框架有很多,但是 React Native天生就提供了兩端共享的一套業務代碼的特性與幾乎接近原生的性能,而同時,它又比原生開發更為靈活,比 H5體驗更為高效,多個版本迭代後的今天,它已經擁有了豐富第三方插件支持,還有一個重要的點是,React Native對熱更新有很好的支持。

如何看待 React Native和原生之間的關係,未來會出現取代原生開發的情況么?

羅晴明:跨平台框架的目標都是盡量消除平台差異,在原生 Runtime上構建一個高級抽象層,以降低學習不同語言、庫、工具的學習成本並提升開發效率,也就是我們過去常說的「一次編寫,到處運行」。但 React Native對這個口號進行了反思,提出的是「一次學習,到處編寫」。它並不刻意追求對原生差異的完全覆蓋和填平,官方也沒有提供各種除核心 UI以外的功能組件,這樣對於很多其他語言或框架切換來的開發者,會有些不適應,但也正是這種「順其自然,垂拱而治」的思想,造就了 React Native框架本身極大的靈活性和適配性,也帶來了非凡的生命力和社區號召力,但由於 React Native倚重於基本的原生知識,所以從根本上不會取代原生。對此我個人的看法是,React Native確確實實已經衝擊了原生開發的市場,未來也會有相當多的應用會使用 React Native來編寫。

什麼類型的業務和應用場景適合用 React Native這種方式來開發,有沒有一些經典案例?

羅晴明:現如今,絕大多數業務和場景都是適合用 React Native來開發的。簡單概括,React Native的優勢在於界面的快速開發和迭代,如果是界面以外的東西,類似音視頻的編解碼、二進位文件的解析處理、密集的 IO計算等,這些方面 React Native確實是不擅長,但這並不意味著要對 React Native一票否決。你仍然可以用原生技術做原生的功能,用 React Native做 React Native的界面,最後再整合到一起,這也是 React Native得以廣泛應用的一大優勢。案例其實有很多,像國外的 Facebook、Instagram、Skype、Uber,國內的 QQ、百度、京東等主流的 App都在應用,中小企業使用 React Native的更是不勝枚舉了。

順便我還想澄清一個謠言,過去一段時間一直有謠傳說,「蘋果封殺了 React Native」,然而事實是 React Native從過去到現在,一直都正常上架。React Native的熱更新功能,也一直可以正常使用。React Native的許可協議,也已經在今年 2月份(0.55版本開始)改為了自由開放的 MIT許可,不用再擔心任何法律風險。

本次 GMTC全球大前端技術大會會後的深度培訓中,《深度掌握 React Native 技術》課程是您進行培訓,那 React Native技術在學習或者使用過程中,會遇到哪些不好突破的點?具體原因是什麼呢?在本次課程中又是怎麼解決的呢?

羅晴明:對於初次接觸 React Native的新手來說,主要有三個肉眼可見的入門坎:JavaScript的語法、新 ES的語法、React的思想,學習難度不大,但是知識點分散,同時由於框架迭代的特別快,很難用已有的知識框架去套用,還有要注意的就是散落在中文網路上的一些博客文章,有意或者無意地留下很多過時的和不正確的做法和思路,卻偏偏因為它能解決特定時期的特定問題而廣為流傳。其實學習沒有捷徑可以走,不能僅僅看了幾篇不成系統的博客就以為完全掌握了某項技術。

跨過入門坎進入實際開發後,你會發現面對的是一個龐大的開源社區的「集體智慧結晶」——意味著它可能也是「集體 Bug結晶」,這就需要你有極好的耐心、極為敏銳的觀察力和推理邏輯,才能從一些玄學一般的坑中趟出來,當然總體上這種坑是會被規範的流程和工程化的工具所規避,而且我們 React Native中文網也會及時為大家填平一些突發的和影響廣泛的萬人坑。

再往後,就是具體的也是最普通的編程思維和技巧,往往也是最難的部分:如何從整體上把握一個工程,如何拆分,如何復用,如何解耦,如何持續維護,如何便於擴展等等,這些都是經驗的積累,是長期編碼、重構、閱讀的過程中所進行的抽象思維鍛煉。

本次數小時的課程不可能「解決」所有問題,但是我能提供的是一些精心挑選的典型的真實技術案例,以一些最有代表意義的思維和方法誤區作為「滅活病毒」,去激活學員的思維。

本次課程主要為學生解決哪些問題,理論有哪些、實操有哪些,分別都有什麼意義?

羅晴明:本次課程由於時間有限,參與人數又較多,難以面面俱到,所以總體上更像是一次大考前的考點總結。我會盡量從頭梳理 React Native框架的知識體系,並儘可能著重說明一下多數人容易犯錯的點。像理論上的東西如 JavaScript、ES、Node和 React基礎要點等,我多數會給出列表、關鍵字,或者是示例、參考文檔和鏈接,不會太深入講解。實操部分由於環境搭建困難,所以不會運行完整的項目,而是會根據預設的一些典型場景,練習一些 JavaScript代碼片段,對開發流程、規範和思路有一個具體的印象。

如果以上的問題還沒有能夠解答你心中的問題,那麼你可以關注在 6月 23-24日在北京國際會議中心舉辦的 GMTC深度培訓,在課程現場,會由React Native 中文網站長羅晴明為大家帶來《深度掌握 React Native 技術》,本課程緊緊圍繞實際應用展開,結合長期以來數以千計的各種規模實際開發案例和問題反饋,總結了開發流程中最核心最具價值的實踐經驗和技巧,助你在大前端開發工作中事半功倍、彎道超車、迅猛成長!不僅如此,百度資深前端工程師,Lavas團隊負責人彭星老師與美團點評前端技術專家,點評小程序及 M站團隊負責人馬全華老師也會為大家帶來前後端分離與 Node.js的相關深度課程。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

想1年成為AI「小牛」?你需要這樣一份學習資料
哪個技術火就選哪個?熱鬧驅動開發的技術選型使不得!

TAG:InfoQ |