React native 簡介

現(xiàn)階段,在移動開發(fā)中,原生(Native)雖然開發(fā)成本很高,但是仍然是必須的,因為Web App的用戶體驗仍無法超越原生;
原生(Native)APP開發(fā)的優(yōu)勢:

  1. Native的原生控件有更好的體驗;
  2. Native有更好的手勢識別;
  3. Native有更合適的線程模型,盡管Web Worker可以解決一部分問題,但如圖像解碼、文本渲染仍無法多線程渲染,這影響了Web的流暢性.

一: 什么是React Native?

React Native是Facebook在F8大會開源的JavaScript框架,(2015年9月15日發(fā)布)可以讓廣大開發(fā)者使用JavaScript和React開發(fā)跨平臺的移動應(yīng)用.在短短不到一年的時間里,它成為手機(jī)端必不可少的開發(fā)模式之一。 它充分利用了Facebook現(xiàn)有的業(yè)務(wù)輪子, 其核心設(shè)計理念:既擁有Native的用戶體驗、又保留React的開發(fā)效率,目前,React Native基本完成了對多端的支持,實現(xiàn)了真正意義上的面向配置開發(fā): 開發(fā)者可以靈活的使用HTML和CSS布局,使用React語法構(gòu)建組件,實現(xiàn):Android, iOS 兩端代碼的復(fù)用,核心設(shè)計理念: 既擁有Native的用戶體驗,又保留React的開發(fā)效率.

二: React Native的特點:

  1. 使用了 Virtual DOM(虛擬DOM)
  2. 提供了響應(yīng)式(Reactive)和組件化(Composable)的視圖組件
  3. 將注意力集中保持在核心庫,伴隨于此,有配套的路由和負(fù)責(zé)處理全局狀態(tài)管理的庫.


    image

三: React Native的優(yōu)勢:

1. 跨平臺開發(fā)

運用React Native,我們可以使用同一份業(yè)務(wù)邏輯核心代碼來創(chuàng)建原生應(yīng)用運行在Web端,Android端和iOS端;

2. 追求極致的用戶體驗

實時熱部署

3. learn once,write everywhere

4. 社區(qū)活躍,除了Facebook之外,GitHub上有很多第三方的團(tuán)隊、個人、公司開發(fā)貢獻(xiàn)了很多非常優(yōu)秀的第三方組件,它的社區(qū)是非常健康、非?;钴S的。

React Native不強(qiáng)求一份原生代碼支持多個平臺,Java的是(Write once, run anywhere)

React Native的劣勢:

1. RN框架原生并不支持Web端;

2. RN框架官方并不支持熱更新;

3. Facebook給出的官方RN API不能完全滿足業(yè)務(wù)快速的發(fā)展,它只給了一些很基礎(chǔ)的API,但業(yè)務(wù)中經(jīng)常會用到的一些多媒體,比如錄音、錄像、視頻播放文件以及文件上傳、壓縮、加密等等,這些都沒有提供。

4. 盡管RN框架性能非常不錯,比H5好很多。實際上經(jīng)過真正的業(yè)務(wù)開發(fā)后,發(fā)現(xiàn)90%的場景下RN的性能非常棒,可以滿足我們的業(yè)務(wù)需求;但是在另外的10%的場景下,特別是一些交互非常復(fù)雜、頁面非常復(fù)雜、需要頻繁的更新、需要一些手勢交互的場景,RN仍有些內(nèi)存跟性能的瓶頸。

4. 以下是react-native 原理圖

image

四: React Native開發(fā)注意事項:

1.最新版的React Native僅支持iOS 8.0 以上, Android僅支持Android 4.1 以上的版本

2.初學(xué)者建議選擇:

  • 功能適中,交互一般,不需要特別多的系統(tǒng)原生支持;
  • 對于部分復(fù)雜的應(yīng)用,可以考慮原生+React Native混合開發(fā)

github地址: https://github.com/facebook/react-native

英文官方文檔:
http://facebook.github.io/react-native/docs/getting-started.html

中文文檔:
https://reactnative.cn/

三端解決方案

螞蟻金服: https://mobile.ant.design/index-cn

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • 一. React Native的由來 它是什么React Native是Facebook在React.js Con...
    我不叫奇奇閱讀 2,534評論 0 0
  • 我是一個愛折騰的極客,曾經(jīng)將 WinXP 不斷安裝、卸載不下 20 次,為了加快 WinXP 的安裝速度,又將默認(rèn)...
    lip2up閱讀 2,831評論 0 6
  • 在你們的生活中是否出現(xiàn)過這樣的一類女生。 她本身不白,但每次假期回來以后就顯得更加皮膚黝黑。你們每次可能只會嘲笑她...
    水寶閱讀 203評論 1 0

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