自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微軟正在放棄React

原創(chuàng) 精選
系統(tǒng) 瀏覽器
微軟Edge瀏覽器是基于Chromium構(gòu)建的,Chromium是谷歌的一個開源網(wǎng)絡(luò)瀏覽器項目。微軟Edge的默認用戶界面來源于Chromium。

作者丨Afan Khan

編譯丨諾亞

出品 | 51CTO技術(shù)棧(微信號:blog51cto)

最近,微軟Edge團隊撰寫了一篇文章,介紹了微軟團隊如何努力提升Edge瀏覽器的性能。但在文中,微軟對React提出了批評,并宣布他們將不再在Edge瀏覽器的開發(fā)中使用React。

我將詳細解析他們的整篇文章內(nèi)容,探討這一決定對React、JavaScript開發(fā)者的影響,以及微軟Edge團隊背后的真正意圖。

一、歷史背景

微軟Edge瀏覽器是基于Chromium構(gòu)建的,Chromium是谷歌的一個開源網(wǎng)絡(luò)瀏覽器項目。微軟Edge的默認用戶界面來源于Chromium。

顯而易見,微軟不希望Edge看起來像Chrome。因此,Edge擁有一套由微軟設(shè)計的用戶界面組件和元素。然而,這些組件是利用React開發(fā)的。

Edge中的許多小部件都是通過React創(chuàng)建的,它們共同構(gòu)成了整個瀏覽器。

實際上,Edge瀏覽器并非一個徹頭徹尾的React項目。它更像是一個精巧的拼圖,通過HTML頁面巧妙地嵌入了多個React驅(qū)動的小部件,諸如菜單、下拉列表以及收藏夾標簽,都藏著React編織的小魔法。

可這樣的做法并不那么靈光,尤其是面對那些鮮少變動的UI信息時,顯得有點力不從心。其效率低下導(dǎo)致微軟開始對React產(chǎn)生質(zhì)疑。

但這個故事遠未揭開全部真相。我們很快就會發(fā)現(xiàn),到底是React有問題,還是微軟在設(shè)計上存在人為缺陷。

二、問題所在

微軟聲稱React效率不高,因此他們進行了改進,并于2024年5月28日發(fā)布的一篇文章中宣布了這一消息。

微軟注意到,多個組件間共享的捆綁包過大,這導(dǎo)致了瀏覽器運行速度減慢。

理論上,這些組件不應(yīng)共用一個捆綁包,但既然微軟指出了這個問題,以下是他們的理由:

1.UI代碼存在模塊化問題。不同組件團隊不當(dāng)共享了通用代碼包和文件,導(dǎo)致UI界面中一個區(qū)域因加載了不必要的共享資源而拖累了另一個區(qū)域的加載速度。

2.微軟采用了一個框架,該框架依賴JavaScript,通過客戶端渲染技術(shù)來呈現(xiàn)UI。微軟聲稱,這是導(dǎo)致其瀏覽器速度變慢的第二個原因。

如前所述,Edge瀏覽器中集成了多個React應(yīng)用。

他們并未啟動多個React項目,而是在多個位置使用了一個單一的JavaScript包,并將該包掛載到了許多組件中的多個屬性上。

而第二個原因正是我撰寫本文的緣由。微軟間接地指出,React正是導(dǎo)致其代碼包問題的框架。

圖片圖片

          

微軟時不時提及React,是因為他們正全速推進像React Native這樣針對Windows、MacOS乃至Xbox的項目。但對于Edge瀏覽器,React似乎成了他們不愿觸及的“逆鱗”。

即便是親手操刀React Native的開發(fā),微軟也遲遲未讓其涉足Edge的領(lǐng)地。作為一款原生桌面應(yīng)用,Edge與React Native看似天作之合,但微軟對此有不同的看法。   

過去,借助HTML、CSS、JavaScript,乃至React來搭建菜單、下拉框等界面元素,是業(yè)界的“金科玉律”。而今,微軟決意轉(zhuǎn)身,背后自有一番深思熟慮的考量。

圖片圖片

在過去,菜單及其選項通常是獨立的HTML文件。每個執(zhí)行特定操作的按鈕或鏈接都會重定向到一個HTML文件。

然而,這種舊模式主要適用于諸如菜單之類的組件。但顯然,微軟并未完全理解這一點。

他們?yōu)槊總€簡單的組件使用帶有React的HTML文件。每個HTML文件都需要JavaScript。并且,他們將這些JavaScript代碼作為捆綁包與每個團隊共享。

微軟將多個HTML頁面(在React應(yīng)用中)嵌入瀏覽器中以控制整個用戶界面。現(xiàn)在,他們正在尋找解決這兩個問題的辦法。

三、解決方案

首先,問題并不在于React本身,而是微軟錯誤地實施了它。

理想的狀況下,每個代碼包應(yīng)服務(wù)于特定的網(wǎng)頁,獨立地完成其功能。每個頁面可以有自己的獨立代碼包或集合。

但是,當(dāng)你在不同團隊的工作中共享相同的代碼包或文件時,混亂幾乎是必然的。每個團隊都在訪問和修改相同的代碼包。

結(jié)果不出所料。React并非不適合他們的用途,而是他們使用方式不當(dāng)。React本身并不慢,但當(dāng)你創(chuàng)建了數(shù)十個實例時,就不能指望它還能保持極高的運行速度。

微軟針對自己造成的問題提出了解決方案:他們創(chuàng)建了一個自定義框架。

微軟宣布了WebUI 2.0——這是一種以標記優(yōu)先的架構(gòu)。它通過最小化代碼包的大小及初始化路徑中運行的JavaScript量,解決了代碼包過大的問題。

微軟已開始使用這一新架構(gòu)來解決我前面提到的兩個問題。他們錯誤地使用了React,忽略了React Native的存在,并解決了一個本可避免的問題。

起初,他們在每個組件中使用了含有React的獨立HTML文件。然后,他們將每個HTML文件所需的JavaScript代碼卸載到了一個共享包中,這個包同時供其他十個團隊使用。而現(xiàn)在,他們不再使用React了。

對此,你怎么看呢?可以把你的想法寫在評論區(qū)。

參考鏈接:https://javascript.plainenglish.io/microsoft-is-ditching-react-f8b952b92b9b

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2024-06-04 00:00:01

微軟EdgeReact

2019-04-26 19:30:45

微軟Windows密碼過期

2020-06-02 15:29:56

Android 11谷歌安卓

2011-07-15 13:07:15

Windows

2009-04-23 10:41:59

微軟IE瀏覽器

2020-03-16 09:25:10

微軟瀏覽器Windows

2009-08-20 10:41:18

Windows Mob

2023-10-10 19:25:44

VSCodePython網(wǎng)站

2010-03-26 09:13:00

Windows Mob系統(tǒng)更新

2018-09-28 10:06:21

移動開發(fā)App

2017-10-31 08:43:14

2015-08-03 14:41:06

微軟IE

2012-08-13 09:56:04

2010-04-30 10:41:42

微軟

2020-03-03 15:31:47

ReactVue前端

2010-08-31 09:25:08

虛擬化微軟VMware

2023-04-20 11:05:17

AI芯片微軟

2021-05-20 10:17:59

編程語言javaPython

2020-10-30 09:54:15

Windows微軟Linux

2021-08-08 08:04:38

微軟macOS OneDrive
點贊
收藏

51CTO技術(shù)棧公眾號