暈蔡簡(jiǎn)談React Native

簡(jiǎn)談React Native

睜眼看趨勢(shì)

睜眼.jpg

混合式開(kāi)發(fā),跨平臺(tái)開(kāi)發(fā)一直備受青睞,目前我了解的有:Web加載HTML5,PhoneGap,CrossApp,自定義XML,不得不提最近很火的Reac Native
.
為什么會(huì)如此受歡迎?大部分存在以下四點(diǎn):

1.團(tuán)隊(duì)成員的成本問(wèn)題

2.開(kāi)發(fā)周期中測(cè)試效率

3.多端代碼難以復(fù)用

4.App更新周期比較長(zhǎng),尤其蘋(píng)果

我眼中的RN

眼中的RN.jpg

+ 大部分使用JS進(jìn)行構(gòu)建原生APP
+ Learn once ,write anywhere;write once,runeverywhere
+ 實(shí)現(xiàn)熱更新
+ 支持腳本與原生模塊相互交互,內(nèi)部橋連接
+ 多端代碼可以復(fù)用

RN運(yùn)行環(huán)境

   1.JS環(huán)境
   2.iOS平臺(tái):內(nèi)置JavaScriptCore
   3.安卓平臺(tái): 采用了Webkit.org 官方開(kāi)源庫(kù)

RN原理

運(yùn)行流程就是:JS ->虛擬DOM ->Bridge -> UI
下面我來(lái)逐一淺析:
React Native會(huì)把應(yīng)用的JS代碼編譯成一個(gè)js文件, React Native進(jìn)行解釋運(yùn)行該腳本文件:
1.如果是js 擴(kuò)展的API,則直接通過(guò)bridge調(diào)用native方法;
2.如果是UI界面,則映射到virtual DOM這個(gè)虛擬的JS數(shù)據(jù)結(jié)構(gòu)中,
通過(guò)bridge 傳遞到native ,然后根據(jù)數(shù)據(jù)屬性設(shè)置各個(gè)對(duì)應(yīng)的真實(shí) native的View。
3.bridge是一種JS 和 平臺(tái)代碼通信的機(jī)制,
用bridge函數(shù)傳入對(duì)方module 和method即可得到異步回調(diào)的結(jié)果。

RN帶來(lái)的優(yōu)勢(shì)以及隱藏的缺點(diǎn)

首先,用React組件化開(kāi)發(fā),提高了開(kāi)發(fā)效率,代碼復(fù)用率較高;其次從架構(gòu)層角度來(lái)講,組件間低耦合,便于擴(kuò)展;另外采用了ES標(biāo)準(zhǔn)特性以及使用Chrome調(diào)試。
再來(lái)分析下它帶來(lái)的缺陷:學(xué)習(xí)成本相對(duì)較大,應(yīng)用開(kāi)發(fā)存在一定局限性,開(kāi)發(fā)高級(jí)的App應(yīng)用,純RN達(dá)不到要求;

寫(xiě)在最后

u=2709257607,3098450328&fm=21&gp=0.jpg

可能有人會(huì)考慮,到底該不該學(xué)習(xí)RN呢? 請(qǐng)自行決定。程序員更要注重自己的內(nèi)功,當(dāng)然從橫向角度來(lái)看,學(xué)習(xí)也無(wú)妨,畢竟考慮自己腰包。程序猿不易,且行且珍惜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容