簡談React Native
睜眼看趨勢
睜眼.jpg
混合式開發,跨平臺開發一直備受青睞,目前我了解的有:Web加載HTML5,PhoneGap,CrossApp,自定義XML,不得不提最近很火的Reac Native
.
為什么會如此受歡迎?大部分存在以下四點:
1.團隊成員的成本問題
2.開發周期中測試效率
3.多端代碼難以復用
4.App更新周期比較長,尤其蘋果
我眼中的RN
眼中的RN.jpg
+ 大部分使用JS進行構建原生APP
+ Learn once ,write anywhere;write once,runeverywhere
+ 實現熱更新
+ 支持腳本與原生模塊相互交互,內部橋連接
+ 多端代碼可以復用
RN運行環境
1.JS環境
2.iOS平臺:內置JavaScriptCore
3.安卓平臺: 采用了Webkit.org 官方開源庫
RN原理
運行流程就是:JS ->虛擬DOM ->Bridge -> UI
下面我來逐一淺析:
React Native會把應用的JS代碼編譯成一個js文件, React Native進行解釋運行該腳本文件:
1.如果是js 擴展的API,則直接通過bridge調用native方法;
2.如果是UI界面,則映射到virtual DOM這個虛擬的JS數據結構中,
通過bridge 傳遞到native ,然后根據數據屬性設置各個對應的真實 native的View。
3.bridge是一種JS 和 平臺代碼通信的機制,
用bridge函數傳入對方module 和method即可得到異步回調的結果。
RN帶來的優勢以及隱藏的缺點
首先,用React組件化開發,提高了開發效率,代碼復用率較高;其次從架構層角度來講,組件間低耦合,便于擴展;另外采用了ES標準特性以及使用Chrome調試。
再來分析下它帶來的缺陷:學習成本相對較大,應用開發存在一定局限性,開發高級的App應用,純RN達不到要求;
寫在最后
u=2709257607,3098450328&fm=21&gp=0.jpg
可能有人會考慮,到底該不該學習RN呢? 請自行決定。程序員更要注重自己的內功,當然從橫向角度來看,學習也無妨,畢竟考慮自己腰包。程序猿不易,且行且珍惜。