React-native專案入門與思考

wutongke發表於2017-03-04

引子

有個前端同學說,等我學好了react-native,你們也就快失業了。樓主這小心臟一驚,真的假的,決定開始學習一下react-native。其實之前一直做事native的開發,沒有怎麼接觸過前端,對於React更是比較陌生,雖然從2015年開始它火的一塌糊塗。
這裡記錄一下自己接觸react-native過程中遇到的坑和作為一個native的思考。

環境搭建

React-native for android 都出來快一年的時間了,環境搭建這塊有很多的文章,這裡還是推薦官網的。React-Native 中文網的也不錯環境搭建
這裡主要說一下自己遇到的坑:

  1. 編譯執行問題
    Android端:
    安裝好環境後,直接執行react-native run-android, 該命令實際是直接使用了android目錄下的gradlew命令,執行後這裡報錯了,主要是一些依賴包的問題。這裡使用Android studio匯入工程目錄下的android,然後執行安裝,ok 了。
    Ios端
    由於之前沒有ios端的經驗,遇到的問題都是小白問題。這裡需要注意的就是xcode要在7以上,然後注意修改AppDelegate.m中的server地址:
    jsCodeLocation = [NSURL URLWithString:@"http://電腦ip:8081/index.ios.bundle?platform=ios&dev=true"];複製程式碼
  2. Android手機上選項選單不出現問題
    本文中使用的測試機是小米5,剛安裝成功後,正常搖一搖手機可以出除錯選單的,然而並沒有出來,這裡需要設定該應用的懸浮窗許可權,設定後可以使用。

入門基礎

  1. React基礎
    當然首先是要有js基礎,學語言個人經驗是先找網上的入門教程也有一個大概的瞭解,這裡推薦廖雪峰的blog,然後就是邊實踐邊學習,有了一定基礎後再去看大部頭的經典教材,一般就會講的比較詳細,主要是知識更系統,原理也會了解不少,讀完後會有一個很大的提升。
    react基礎我看了阮一峰老師的部落格,React入門例項教程.

  2. React-Native基礎
    這裡主要是跟著官網的教程練習就可以了,需要注意不能版本之間的一些區別。同時也要注意es5和es6的一些區別,es5和es6的區別這個文章介紹的比較好。


專案練習

  1. react-native-android-guide
    這裡收集了很多入門的資料,但是有幾個月沒有更新了。體驗了一下文中提到的知乎日報Android版,整體來說效果不錯,但是在介面切換的時候略卡。
    react-native-material-design中實現了materal-design,效果不錯,但是作者有段時間沒有更新,如果使用最新的React-native 有些問題。
  2. awesome-react-native
    這個地址在持續更新著學習資料但主要以英文為主,收集非常多react-native專案。這裡fork了專案NBAreact單純覺得nba不錯,哈哈。在原始碼的基礎自己練習了知乎日報的介面。
    這個app中使用了react-native-scrollable-tab-view,一個tab切換的庫,react-native-router-flux一個介面跳轉的路由庫,個人認為很值得學習。
  3. 發現一個不錯的react-native project, 程式碼很整齊,使用了Redux,非常值得學習。
    reading github 地址

Debug

debug需要藉助於Chrome瀏覽器,首先下載react 的chrome外掛,然後在應用選單中選擇遠端除錯,即可以進行實時斷點除錯,效果還不錯。

總結

就接觸的幾個開源專案而言,在安卓手機上的應用表現略卡,主要表現在介面切換等動畫上。但開放一套可以適用於兩個端,誘惑力還是很大的。對於原有的native應用可以考慮把一些簡單的介面用react-native來實現。

思考

總體感覺react-native 還是有挺多不完善的地方,與原生程式碼相比,還是有一些差距。但是react-naive 也是在不斷的完善中,有點像早期android,有些常用的庫比較缺失,可以考慮按照native的思路多造一些輪子。特別是android作為一個開源的系統,很多思路都可以應用於react-native。比如介面切換的路由設定、資料傳遞等,theme,style的通用實現等,native的同學可以考慮把這些功能加入到react-native中。願react-native有一個美好的前景。

相關文章