React VS Angular:前端巨頭的衝突
“ 發現關於這兩個 JavaScript 前端巨頭的最重要的故事。”
如今,幾乎一半的基於 JavaScript 的前端項目都是使用這兩個龐大且公認的框架編寫的。Web 開發世界在很大程度上依賴於這項技術,如果你沒有聽說過它們,你就不能認爲自己是真正的開發人員。因此,在本文中,我們將展現關於這兩件令人難以置信的藝術品的故事。
01
React
React 是一個 JavaScript 開源前端庫,由 Meta(創建時爲 Facebook Inc.)於 2013 年開發,由其創建者、熱情的開發人員和開源愛好者維護。React 是最受歡迎的 GitHub 庫之一,並且肯定是 JavaScript 庫中最著名的。
剛開始時,Facebook 使用 C++ 開發和擴展他們的前端應用程序,速度很快,但是爲了測試代碼庫中的每一個微小變化,工程師需要編譯代碼,並且需要花費巨大的時間時間,所以這是一個糟糕的解決方案。
因此,他們決定使用 JavaScript,並構建一套強大的指令來使所有流程更加敏捷和愉快。他們做到了,他們創建了 React,這個庫將成爲最著名的庫。
Facebook 沒有給出這個名字的官方動機,但有些人認爲這是對當時唯一強大的前端框架 Angular 的反應。
02
Angular
Angular 是一個帶有 MIT 許可證的開源前端開發框架。第一個名爲 AngularJs 的版本於 2010 年發佈,主要由 Google 開發。經過幾年的經驗和發展,以及像 React 這樣的競爭對手的成長,谷歌發佈了第二個版本,稱爲 Angular2。
Angular 是用 TypeScript 編寫的。這可能就是 Angular 如此出色地支持 TypeScript 的原因。它也是對 Bootstrap 支持最好的框架,因此您可以使您的頁面更具響應性。
03
來自社區的數據
根據 stackeoverflow.com 的 2021 年開發者調查,這兩種技術非常流行,並且具有巨大的開發者適應性。超過 40% 的參與調查的開發人員表示他們使用 React,而近 23% 的開發人員對 Angular 持相同看法。這意味着 React 擁有比 Angular 更多的人使用他們的技術。
這是一個優點,也是一個缺點。它是專業的,因爲這意味着 React 擁有一個更大更強大的社區,可以幫助新開發人員更快地學習並找到更好的資源。缺點是由於市場飽和,React 開發人員可能缺乏工作場所。Angular 如此,擁有一個較弱但雖然很棒的社區,但也缺少較低的工作場所。
另一個證明 Angular 用戶對 React 的熱愛的數字是 GitHub 庫中的開始。元技術有 11.8 萬顆星,而谷歌 “只有”7.9 萬顆星。
04
重要區別:庫與框架
這兩種技術之間的主要區別之一是 React 是一個庫,而 Angular 是一個框架。這是什麼意思?本質上,當您使用庫時,您負責整個應用程序的流程,而框架可以爲您處理。在庫中,您可以隨時調用元素,使用框架時您會受到更多限制,但也更安全。
05
它們是如何工作的
React 使用單個頁面,您可以在其中放置、添加和刪除不同的部分,稱爲組件。在 React 哲學中,這個組件必須是可重用且輕量級的。這種範式使頁面結構更容易處理和修改,也提高了整個項目的性能。React 不會在每次發生某些事情時重新渲染整個頁面。爲了處理這個問題,他使用了虛擬 DOM,它允許站點僅重新加載站點所需的組件或塊。它還允許服務器端渲染 (SSR) 擴展客戶端的性能。
首先,Angular 似乎更復雜、更強大,但卻是一個了不起的框架。它提供了簡單的雙向數據綁定、MVC 模型、路由包、依賴注入。這些都是很棒的功能,對於沒有太多經驗的初學者來說,這聽起來也很嚇人。這些概念是 Angular 工作方式的核心。
雙向數據綁定只是一種讓組件共享數據並確認某些事件的機制。MVC 模型是組件組織和放置在頁面上的方式,您可以簡化對象及其行爲的思考。路由包是一組指令,讓頁面在路由器內部創建一些路由,這樣當請求進來時,可以識別並生成不同的頁面。然後,最後,依賴注入是一種機制 object 接收它所依賴的其他對象。最後一個聽起來仍然很棘手。但是,這就是 Angular 的整體情況:一個具有大量強大功能的龐大框架,其中一些還非常先進。
06
性能
這兩種技術的性能可以很容易地進行比較。它們都是用 JavaScript 編寫的,所以我們不需要做奇怪的基準測試或非常複雜的算法來決定哪個性能更好。我們只需要在兩者的規格中進行一些簡單的理論觀察。更準確地說,您可以猜到,性能最高的應該是較輕的,佔用空間較小的。
那麼,哪一個更輕呢?它是 React,它的 43kb 空間與 Angular 的 143kb 相對。但是,爲什麼這種差異如此之大?React 是一個庫,而 Angular 是一個框架,所以他也有自己的語言來呈現頁面,而 React 使用 JSX。此外,Angular 有很多額外的功能,這會使所有數據包變得更大,並降低性能。這就是 React 具有更好性能的原因。此外,可以從可通過 npm 安裝的不同庫中獲取 React 缺少的功能。
07
哪一個更好呢?
React 沒有像 Angular 那樣實現 MVC,所以它需要導入其他庫來使用它,這不是最優的。如前所述,由於大量的依賴關係,Angular 往往非常緩慢,並且難以擴展。此外,如此龐大的功能數量使學習曲線更加陡峭。
顯然,就像在科技界的幾乎所有辯論中一樣,沒有絕對的贏家,但有些案例表明採用一種技術而不是另一種更好。因此,有時建議使用 Angular,有時建議使用 React。
但是,這些情況是什麼?如果你想使用更少的外部依賴,Angular 是不二之選。如果你想要一個更健壯的框架,Angular 100% 是最好的。另一方面,如果您想要更多性能,並使您的應用程序更具可擴展性,那麼 React 是更好的選擇。如果你不需要大量的特性,而只需要一些必要的部分來實現中小型項目,那麼 React 看起來會更好。此外,如果您需要在開發階段更快速、更靈活,建議使用 React。如果對你來說社區方面很重要,那麼 React 是肯定的。
如果你是初學者,兩者都是不錯的選擇,但我建議你學習 React。注意:在正確學習 JavaScript 之前不要學習其中任何一個。否則,一切都會變得異常艱難,你會因爲缺乏基礎而放棄。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/AknxCWMdjkJKoSvpBnaQQw