瞭解React Native

這裏寫圖片描述

React Native 正像它的名字,將 React 帶到了原生世界,和 H5 不同的是,我們不再使用 CSS 和 HTML,而只有 js 爲伴。我們也不再有那些 div, input 這些標籤,而是由 View, TextInput 等等取代,更符合原生開發者們的習慣。佈局上,幸而有強大的 Flexbox 支持,如果開發者們之前有使用或者看到過 Google 在 GitHub 發佈的 Android 版 FlexboxLayout,相信對它會很熟悉。原生開發中的頁面棧,也由 Navigator 進行了實現(在 Android 上還有 BackAndroid 的返回鍵支持)。

與 WebView 不同,React Native 運行的界面,最終會被解釋映射爲原生的 View,可以直接使用佈局邊界或者 Hierarchy Viewer 看出層級(js 文件會打包爲一個bundle,位於assets下面,RN引擎會加載並進行解釋映射)。

好處

* 體驗 web 開發的便捷,不再需要編譯,重新加載一下 js 就行了
* 可以直接使用 Chrome 或者 Nuclide 調試
* Android / iOS 兩端可以共享很大一部分代碼(RN 還在進行 Windows, MacOS, Node-webkit 等平臺的支持)
* 熱更新,JS bundle 下發一下新的就行了(當然也有一定侷限性,如果是 hybrid,則 native 的 RN module 部分不能更新)

壞處

* 前端開發不會原生做不了 React Native(除非你能真只用自帶的那些東西),而且理解那些 RN 提供的組件也會很頭暈(需要同時瞭解 Android 和 iOS)。
* 原生開發需要一定成本的學習實踐才能掌握 React Native。畢竟 ES6 不像過去的 JS 那麼傻瓜式了。
* React Native 目前仍然處於快速迭代開發的階段,你永遠也不知道下個版本自己升級需要修改多少原來的代碼。
* React Native 的資料較少,尤其是國內的,更尤其是 hybrid 開發的(GitHub 上的開源項目大多是純 RN 的)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章