18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

React Native重構(gòu)即將完成,改善版本有何不同?

如意 ? 來(lái)源:百家號(hào) ? 作者: 讀芯術(shù) ? 2020-07-01 14:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

2015年,React Native被首次推出,使用ReactJS框架開(kāi)發(fā)原生跨平臺(tái)應(yīng)用程序。該框架獲得了社區(qū)的大力支持,并憑借其Web同行的名聲逐漸普及,但其實(shí)該平臺(tái)的原始設(shè)計(jì)并非沒(méi)有缺點(diǎn)。

2018年,F(xiàn)acebook團(tuán)隊(duì)宣布他們正試圖解決多年來(lái)開(kāi)發(fā)人員遇到的這些最常見(jiàn)問(wèn)題,進(jìn)行ReactNative重構(gòu)。這樣的重構(gòu)改善體現(xiàn)在哪些方面呢?本文將從性能和開(kāi)發(fā)速度方面來(lái)談一談。

原構(gòu)造

ReactNative曾被稱作“不依賴于平臺(tái)”的應(yīng)用框架。從某種程度上講,該框架的主要目標(biāo)是讓開(kāi)發(fā)人員編寫(xiě)Javascript React代碼,而React Native可以在幕后部署其機(jī)制,以將Reactreconciliation tree轉(zhuǎn)錄成可由原生基礎(chǔ)設(shè)施解釋的內(nèi)容。它能夠:

· 正確顯示UI

· 訪問(wèn)原生功能

通常,Android/ iOS生態(tài)系統(tǒng)目前的機(jī)制如下所示:

每個(gè)React Native應(yīng)用程序中運(yùn)行著3個(gè)并行線程:

· 陰影線程用來(lái)設(shè)計(jì)布局。它使用Facebook自帶的Yoga布局引擎來(lái)設(shè)計(jì)flexbox布局并將其發(fā)送回UI線程。

· JS線程讀取和編譯所有JavaScript代碼以及執(zhí)行應(yīng)用程序大部分業(yè)務(wù)邏輯。將所有Javascript代碼融匯到一個(gè)文件中,并翻譯任何其他Javascript語(yǔ)法(例如JSX或TS),然后將此代碼發(fā)送到JavaScriptCore引擎以便運(yùn)行。

· 原生線程是運(yùn)行原生代碼的位置。每當(dāng)需要更新UI或訪問(wèn)本機(jī)函數(shù)時(shí),它將與JS線程連接。它分為原生UI和原生模塊。原生模塊在啟動(dòng)時(shí)都處于預(yù)備狀態(tài),這意味著即使ReactNative使用藍(lán)牙模塊,該藍(lán)牙模塊也始終處于運(yùn)行狀態(tài)。

使用橋接器可以連接JS線程和原生線程,在后臺(tái),C++模塊圍繞一個(gè)異步隊(duì)列構(gòu)建。每當(dāng)它從任一方獲取數(shù)據(jù)時(shí),都會(huì)將數(shù)據(jù)序列化為字符串并將其通過(guò)隊(duì)列傳遞,并在到達(dá)時(shí)反序列化。

這意味著所有線程都依賴于跨網(wǎng)橋傳輸?shù)漠惒絁SON消息,并且這些消息發(fā)送到任一端,期望它們?cè)趯?lái)的某個(gè)時(shí)間引發(fā)響應(yīng),但它還存在擁塞的風(fēng)險(xiǎn)。

每當(dāng)瀏覽者在原生環(huán)境中拖動(dòng)滾動(dòng)條時(shí),信息都會(huì)異步發(fā)送到JavaScript領(lǐng)域,但是原生環(huán)境不會(huì)等待Java腳本執(zhí)行工作并將其以另一種方式發(fā)送回去。這會(huì)造成延遲,屏幕上出現(xiàn)信息之前會(huì)一片空白。

同樣,布局設(shè)計(jì)需要經(jīng)過(guò)很多次才能在屏幕上顯示,因?yàn)樵谠O(shè)計(jì)布局之前,它需要想盡辦法到達(dá)Yoga引擎,當(dāng)然這也意味著要通過(guò)橋接器??梢钥吹疆惒叫蛄谢瘉?lái)回發(fā)送JSON數(shù)據(jù)是怎樣造成性能問(wèn)題的,但是如何使JavaScript與本機(jī)通信呢?這就要靠JSI發(fā)揮作用了。

新架構(gòu)

重構(gòu)版的ReactNative將逐漸棄用橋接器,轉(zhuǎn)而采用新元素——JavaScript接口(JSI)。JSI的一些改進(jìn)令人驚喜,首先就是JS軟件包不再依賴JSC。換句話說(shuō),現(xiàn)在可以輕松地將JSC引擎與其他(可能更高性能的)JavaScript引擎互換,例如V8。

第二個(gè)改進(jìn)針對(duì)的是這種新架構(gòu)的基礎(chǔ):“通過(guò)使用JSI,JavaScript可以保存對(duì)C++主機(jī)對(duì)象的引用并對(duì)其調(diào)用方法。JavaScript和原生領(lǐng)域?qū)⒄嬲舜肆私?。?/p>

這也意味著JSI將允許所有線程之間完全互操作。通過(guò)共享所有權(quán),JavaScript代碼可以直接從JS線程運(yùn)行原生方法,不需要將要傳遞的消息序列化為JSON,這消除了橋接器上的所有擁塞和異步問(wèn)題。

除了顯著改善不同線程之間的通信之外,這種新架構(gòu)還可以直接控制原生模塊。這意味著我們可以在需要時(shí)使用原生模塊,而不是在啟動(dòng)時(shí)將它們?nèi)恳龑?dǎo)一次。這大大提高了性能,節(jié)省了啟動(dòng)時(shí)間。

在掌握了C ++的強(qiáng)大功能的基礎(chǔ)上,懂得如何將React Native用于定位非常大的系統(tǒng)面板是很容易的。

推出這么多年,ReactNative已過(guò)時(shí)、待清理、需維護(hù)的部分已經(jīng)積攢很多了,React Native框架已經(jīng)清除了某些功能,諸如Webview或AsyncStorage之類(lèi)的模塊正逐漸從React Native核心中移出,將轉(zhuǎn)變?yōu)樯鐓^(qū)管理的存儲(chǔ)庫(kù)。

憑借新的精簡(jiǎn)核心模塊以及JavaScript代碼與原生代碼之間強(qiáng)大的互操作性機(jī)制,React Native重構(gòu)將實(shí)現(xiàn)許多性能改進(jìn)和更全方位的開(kāi)發(fā)人員工作流。它計(jì)劃在2020年第四季度之前完成全面重組,更好的性能和全新開(kāi)發(fā)體驗(yàn)十分令人期待。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 可重構(gòu)
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    9190
  • ui
    ui
    +關(guān)注

    關(guān)注

    0

    文章

    208

    瀏覽量

    22168
  • reactjs
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    4703
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    QCon·上海站HarmonyOS開(kāi)發(fā)者技術(shù)分論壇:共探鴻蒙開(kāi)發(fā)新機(jī)遇

    論壇(以下簡(jiǎn)稱“論壇”)成功舉辦,論壇聚焦 AI 實(shí)踐落地與技術(shù)賦能,邀請(qǐng)多位華為技術(shù)專家深度解讀并分享 HarmonyOS AI輔助開(kāi)發(fā)能力、多設(shè)備適配解決方案、場(chǎng)景化賦能、性能調(diào)優(yōu)、場(chǎng)景能力共建以及React?Native性能優(yōu)化等方面的實(shí)戰(zhàn)內(nèi)容,幫助開(kāi)發(fā)者快速了解前
    的頭像 發(fā)表于 10-24 15:59 ?519次閱讀
    QCon·上海站HarmonyOS開(kāi)發(fā)者技術(shù)分論壇:共探鴻蒙開(kāi)發(fā)新機(jī)遇

    AES和SM4算法的可重構(gòu)分析

    一、AES和SM4算法特點(diǎn)分析 基于前面幾篇分享,我們對(duì)AES和SM4的算法流程了較為清晰的認(rèn)識(shí),接下來(lái)對(duì)AES和SM4算法的共同點(diǎn)進(jìn)行分析,得出二者的可重構(gòu)設(shè)計(jì)思路。 首先,這里把AES
    發(fā)表于 10-23 07:26

    UFS 5.0存儲(chǔ)標(biāo)準(zhǔn)即將完成

    電子發(fā)燒友網(wǎng)綜合報(bào)道,JEDEC固態(tài)技術(shù)協(xié)會(huì)宣布即將完成新一代UFS 5.0存儲(chǔ)標(biāo)準(zhǔn)。UFS5.0專為需要高性能且低能耗的移動(dòng)應(yīng)用和計(jì)算系統(tǒng)而設(shè)計(jì),計(jì)劃提供比其前代更快的資料存取速度和更佳的性能表現(xiàn)
    的頭像 發(fā)表于 10-10 08:23 ?5518次閱讀
    UFS 5.0存儲(chǔ)標(biāo)準(zhǔn)<b class='flag-5'>即將</b><b class='flag-5'>完成</b>!

    ZeroNews 的 TLS 終止方案何不同?

    TLS(傳輸層安全協(xié)議)終止是指在網(wǎng)絡(luò)代理節(jié)點(diǎn)(如反向代理服務(wù)器)上結(jié)束加密連接的過(guò)程。當(dāng)公網(wǎng)用戶通過(guò) HTTPS 訪問(wèn)服務(wù)時(shí),流量首先到達(dá)代理節(jié)點(diǎn),在此處完成 TLS 解密,再將明文流量轉(zhuǎn)發(fā)至后端服務(wù)。
    的頭像 發(fā)表于 08-25 12:09 ?362次閱讀
    ZeroNews 的 TLS 終止方案<b class='flag-5'>有</b><b class='flag-5'>何不</b>同?

    鴻蒙5開(kāi)發(fā)寶藏案例分享---點(diǎn)擊完成時(shí)延分析

    ?** 鴻蒙完成時(shí)延優(yōu)化實(shí)戰(zhàn)指南:讓你的應(yīng)用絲滑如飛!** 在移動(dòng)端開(kāi)發(fā)中, 完成時(shí)延就是用戶體驗(yàn)的生命線 !今天帶你深入鴻蒙完成時(shí)延優(yōu)化,揭秘官方文檔中的寶藏技巧,讓你的應(yīng)用告別卡頓,流暢起飛
    發(fā)表于 06-12 17:03

    USB4和TBT4平臺(tái)的ccg6sf/df配置設(shè)置何不同?

    :CYPD6128-48LQXI_notebook_dualapp_rkl_config.cyacd)以支持 USB4 平臺(tái)? 1. USB4 和 TBT4 平臺(tái)的 ccg6sf/df 配置設(shè)置何不同? 2. 對(duì)于 USB4 平臺(tái),我能否使用 HOST SDK3.6 來(lái)
    發(fā)表于 05-22 06:27

    一種低翹曲扇出重構(gòu)方案

    翹曲(Warpage)是結(jié)構(gòu)固有的缺陷之一。晶圓級(jí)扇出封裝(FOWLP)工藝過(guò)程中,由于硅芯片需通過(guò)環(huán)氧樹(shù)脂(EMC)進(jìn)行模塑重構(gòu)成為新的晶圓,使其新的晶圓變成非均質(zhì)材料,不同材料間的熱膨脹和收縮程度不平衡則非常容易使重構(gòu)晶圓發(fā)生翹曲。
    的頭像 發(fā)表于 05-14 11:02 ?836次閱讀
    一種低翹曲扇出<b class='flag-5'>重構(gòu)</b>方案

    HDMI接口芯片失效原因分析和HDMI接口芯片改善措施與選型

    HDMI接口芯片 失效原因分析和改善措施 ? ? HDMI,全稱 High Definition Multimedia Interface, 即高清多媒體接口。自問(wèn)世以來(lái),HDMI 歷經(jīng)了多次版本
    的頭像 發(fā)表于 05-09 11:16 ?2.3w次閱讀
    HDMI接口芯片失效原因分析和HDMI接口芯片<b class='flag-5'>改善</b>措施與選型

    tscircuit - 電路開(kāi)發(fā)的 React 范式? 用TypeScript、React和 AI工具構(gòu)建電子產(chǎn)品

    用 TypeScript、React 和 AI 工具構(gòu)建電子產(chǎn)品。
    的頭像 發(fā)表于 04-30 18:18 ?1045次閱讀
    tscircuit - 電路開(kāi)發(fā)的 <b class='flag-5'>React</b> 范式?   用TypeScript、<b class='flag-5'>React</b>和 AI工具構(gòu)建電子產(chǎn)品

    如何在Ubuntu 24.04上運(yùn)行5.4.47版本?

    我正在為我們自己的 imx8mm 板升級(jí)我們的構(gòu)建機(jī)器。我們?nèi)匀皇褂?5.4.47 版本作為我們的 BSP 基礎(chǔ),并在 Ubuntu 18.04 上運(yùn)行我們的構(gòu)建 # Used reporepo
    發(fā)表于 04-11 06:08

    使用VIRTUALLAB FUSION仿真光纖光學(xué)

    使用戶界面更加友好。 但是,當(dāng)我們等待新功能在即將發(fā)布的版本中發(fā)布時(shí),當(dāng)前版本中其實(shí)已經(jīng)很多您可以享受到的功能! 查看下面的用例,獲取一些啟發(fā)吧。 用于光纖耦合的不同透鏡的比較 為
    發(fā)表于 03-20 18:18

    請(qǐng)問(wèn)DLP2000和DLP2010區(qū)別是什么?用途何不同?

    請(qǐng)問(wèn)DLP2000和DLP2010區(qū)別是什么?用途何不同? DLP2000EVM板能否驅(qū)動(dòng)DLP2010的DLP芯片?
    發(fā)表于 02-25 08:11

    TVP5145如果視頻切換是在內(nèi)部而非外部完成的,那么幀/場(chǎng)再同步時(shí)間是否會(huì)有所改善?

    ,因此我對(duì) TI 提出的問(wèn)題是:如果視頻切換是在內(nèi)部而非外部完成的,那么幀/場(chǎng)再同步時(shí)間是否會(huì)有所改善
    發(fā)表于 02-17 07:40

    使用SSR構(gòu)建React應(yīng)用的步驟

    使用SSR(Server-Side Rendering,服務(wù)器端渲染)構(gòu)建React應(yīng)用的步驟通常包括以下幾個(gè)階段: 一、項(xiàng)目初始化與配置 創(chuàng)建React項(xiàng)目 : 可以使用Create React
    的頭像 發(fā)表于 11-18 11:30 ?1092次閱讀

    簡(jiǎn)述大前端技術(shù)棧的渲染原理

    應(yīng)用開(kāi)發(fā):Android、iOS、鴻蒙(HarmonyOS)等; ?Web前端框架:Vue、React、Angular等; ?小程序開(kāi)發(fā):微信小程序、京東小程序、支付寶小程序等; ?跨平臺(tái)解決方案:React Native、Fl
    的頭像 發(fā)表于 11-07 10:11 ?867次閱讀