成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

React Native 原理

jackzou / 2528人閱讀

摘要:對(duì)象和原生代碼交互對(duì)象可以和原生對(duì)象之間相互調(diào)用,關(guān)系如上圖。和本地代碼間的通信其中通信的特點(diǎn)是異步的序列化的批量的,對(duì)于大批量的通信事件可以將其分成幾部分,減少時(shí)間延遲參考

React Native簡(jiǎn)介

React Native是一個(gè)建立在JavaScript和React上用于構(gòu)建本地應(yīng)用的框架,它具有React和JavaScript相似的代碼風(fēng)格,編寫一次可以運(yùn)行在多個(gè)平臺(tái)之上(>= Android 4.1 (API 16) and >= iOS 8.0),并且有著強(qiáng)大的社區(qū)。

React Native 結(jié)構(gòu)

主要分為三個(gè)部分:

Native Code對(duì)應(yīng)著原生代碼,例如android的原生Java代碼,ios的原生C++代碼

Bridge用于將JS和原生Native Code連接起來(lái)

JS VM用于運(yùn)行JS代碼,React Native采用的是JavaScriptCore,在Android上,需要應(yīng)用自己附帶JavaScriptCore,Ios上JavaScriptCore屬于系統(tǒng)的一部分,不需要應(yīng)用附帶。

React Native線程模型

React Native應(yīng)用中存在三個(gè)線程隊(duì)列,它們工作的流程大概如下:UI Event Queue觸發(fā)事件,通過(guò)Bridge調(diào)用JS代碼在JS Event Queue中運(yùn)行,JS運(yùn)行后將視圖更新分發(fā)給Native Module Event Queue中的線程,Native Module Event Queue負(fù)責(zé)計(jì)算,然后將最后的結(jié)果交給UI Event Queue中的線程去更新。 其中UI Event Queue為主線程。

Modules

React Native中有一個(gè)基本的概念就是模塊,一個(gè)模塊有狀態(tài)和方法,我們可以通過(guò)JS調(diào)用一個(gè)Module,如上圖中以Android為例,可以通過(guò)JS調(diào)用Dialog module,然后轉(zhuǎn)化成原生代碼對(duì)應(yīng)的是Android中的DialogModule。

View Managers

React Native中的另一個(gè)概念是組件,一個(gè)組件可以通過(guò)映射關(guān)系和原生的API相對(duì)應(yīng),我們也可以自定義組件,例如上圖中的和原生代碼中的 new TextView(getContext())相對(duì)應(yīng)。

JavaScript對(duì)象和原生代碼交互

JavaScript對(duì)象可以和原生對(duì)象之間相互調(diào)用,關(guān)系如上圖。

JavaScript和本地代碼間的通信


其中通信的特點(diǎn)是:

異步的

序列化的

批量的,對(duì)于大批量的通信事件可以將其分成幾部分,減少時(shí)間延遲

參考:http://www.reactnative.com/un...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83946.html

相關(guān)文章

  • React Native項(xiàng)目時(shí)依賴管理的最佳實(shí)踐

    摘要:此時(shí)會(huì)把當(dāng)前路徑作為一個(gè)本地,在全局路徑下創(chuàng)建一個(gè)軟鏈接。所有依賴于全局路徑下的都必須是一個(gè)版本的,并沒(méi)有提供多版本號(hào)依賴的解決方法。因此,還是建議選擇一個(gè)常用的版本安裝在全局路徑,個(gè)別需求其他版本號(hào)的的項(xiàng)目,使用來(lái)配置局部依賴。 在實(shí)際開(kāi)發(fā)過(guò)程中,經(jīng)常需要同時(shí)運(yùn)行和修改多個(gè)React Native工程,比如運(yùn)行g(shù)ithub上的開(kāi)源項(xiàng)目以觀察某種控件的實(shí)際效果。那么此時(shí),各項(xiàng)目下的初始...

    AbnerMing 評(píng)論0 收藏0
  • 跨平臺(tái)技術(shù)演進(jìn)

    摘要:接下來(lái),我將從原理優(yōu)缺點(diǎn)等方面為大家分享跨平臺(tái)技術(shù)演進(jìn)。小程序年是微信小程序飛速發(fā)展的一年,年,各大廠商快速跟進(jìn),已經(jīng)有了很大的影響力。下面,我們以微信小程序?yàn)槔?,分析小程序的技術(shù)架構(gòu)。 前言 大家好,我是simbawu ,@BooheeFE Team Leader,關(guān)于這篇文章,有問(wèn)題歡迎來(lái)這里討論。 隨著移動(dòng)互聯(lián)網(wǎng)的普及和快速發(fā)展,手機(jī)成了互聯(lián)網(wǎng)行業(yè)最大的流量分發(fā)入口。以及隨著5G...

    魏憲會(huì) 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

jackzou

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<