Angular、React 和 Vue 三大框架,Web 開發該如何選擇?

作者 | Northell

譯者 | 平川

策劃 | 田曉旭

隨着社交媒體和用戶生成內容的爆炸式增長,互聯網正在向更好的方向發展。爲了跟上時代發展的步伐,提供更好的交互性,開發人員開始構建庫和框架來簡化交互式站點的構建。2006 年,John Resig 發佈了 jQuery,使得在 HTML 中編寫客戶端腳本變得更加容易。隨着時間的推移,其他類似的項目出現了。剛開始,它們是一個龐大的單體,而且把項目的構想強加給開發者。現在,這些庫已經開始向緊湊型輕量級庫轉變,可以非常容易地添加到任何應用程序中。讓我們來看看其中最受歡迎的三個。

1JavaScript 框架概覽

開始一個新項目總是要做許多決定。其中一個關鍵決策就是選擇合適的框架或庫。幸運的是,Vue.js 是一個功能非常多樣化的庫,可以處理各種各樣的任務。

Vue.js

Vue.js 這個庫讓你可以將交互性和附加功能添加到任何使用 JavaScript 的編碼環境中。Vue 既可以在單獨的頁面上用來解決簡單的任務,也可以作爲成熟的工業應用程序的基礎。Vue.js 是一個用於構建圖形用戶界面的高級框架。它也可以與一些現代工具和附加庫一起,用於構建複雜的單向應用程序。

Vue 庫其中一個最大的優點是它不需要任何特殊知識。任何 Vue 應用程序都是使用 HTML、CSS 和 JavaScript 編寫的——熟悉這些工具就可以立即投入工作。即使你以前從未做過客戶端開發,也可以基於以前的 MVC 設計模式使用經驗進行構建,這種模式與 MVVM 非常相似。

React

藉助 React 庫,我們可以輕鬆地創建交互式用戶界面。集成 React 時,不需要更改當前項目的代碼,它只負責渲染界面,不會額外帶來痛苦。

React 系統支持用戶界面更新,使得爲應用程序創建健壯的模塊化組件更加容易。React 庫通過數據更新來實現大部分用戶界面維護工作,這對開發人員來說非常令人愉快(難怪它如此受歡迎)。

Angular

Angular 差不多是一個完整的開發環境。它包含一整套程序,包括 TypeScript 編譯器、AOT 編譯器和 Web 服務器。Angular 的 Web 服務器用於調試使用這個框架開發的站點。它是用同一個 Angular CLI 實用程序啓動的,要啓動 Angular CLI,你需要在 Windows 命令行中進入項目文件夾,並執行 ng serve 命令。

2Vue、React 和 Angular 的主要特徵

React 最大的其中一個優勢是:在穩定性和創新性之間做了很好的平衡,使得用戶比較容易適應。這個原因以及其他一些原因使 React 保持了它的地位,並獲得越來越多的人氣。

圖片來源:

https://insights.stackoverflow.com/trends?tags=reactjs%2Cvue.js%2Cangular%2Cangularjs

大小

開發框架的大小對未來應用的性能至關重要。框架和應用程序必須在應用程序開始正常工作之前加載。

在這方面,Angular 最複雜,有 143KB。React 次之,有 43KB,而 Vue.js 只有 23KB。除非你的應用特別大,並且包含了大量的組件,否則最好使用更小的結構。

性能

在 Web 項目中,性能與 DOM 密切相關:DOM 在瀏覽器 / 代碼中表示 Web 頁面。在發生更新時,你可以通過 DOM 控制 Web 頁面。

Vue、React 和 Angular 的性能會因爲任務的不同而有所差異,但在大多數情況下,它們都非常高效和快速。React 和 Vue 都實現了 DOM。得益於其精心設計的結構,Vue 提供了出色的性能和內存分配。這就是 React 和 Vue.js 優於 Angular 的地方:它們利用了虛擬 DOM——原始 DOM 的複本。

注意:DOM 是一種將 HTML 文檔的內容表示爲對象的方法。此外,還有一個用於管理指定對象的接口。DOM 分常規 DOM(也稱爲真 DOM)和虛擬 DOM。它們有什麼區別呢?讓我們來看一個例子。如果你想修改在 HTML 標籤中找到的某些信息,算法將會這樣做:真正的 DOM 將更新所有標籤,直到它找到它需要的片段。在某些情況下,這會對性能和其他參數產生負面影響。虛擬 DOM 則只更新必要的 HTML 塊。

社區

React 是世界上最流行的框架,這已不是什麼祕密。它越來越受歡迎,因爲它提供了真正的 Promise。React 的 Mental Model 看起來很可靠,其組件讓創建用戶界面變得更容易,API 靈活且富有表現力,整個項目給人的感覺是就應該那樣。對 API 庫的描述也友好,更容易給人留下良好的印象。

從那時起,React 庫在基本概念和 API 方面就基本保持不變,但已經形成並發展出了一整套的知識和最佳實踐,越來越多的人在使用它。Angular 因其優點而備受讚譽,並擁有大量的社區支持。遺憾的是,儘管 Vue.js 有很多好處,但它並沒有像它的競爭對手那樣被開發者所接受。

下面讓我們從流行度和相關性兩個方面比較下這三個框架:

3Vue、React 和 Angular:該選哪個?

爲了選出最合適的庫,你應該首先仔細分析這些框架並理解自己的需求。無論是有許多依賴項的現有項目,還是你想使用熟悉的庫進行開發的新應用程序,Vue 都不會給你帶來任何麻煩。你可以繼續使用 Bootstrap 或 Bulma 這樣的 CSS 框架,保留爲јQuery 或 Backbone 編寫的組件,集成你最喜歡的庫執行 HTTP 請求,或使用 Promise 對象。

要開始使用 Vue 進行編程,你所要做的就是將 Vue.js 庫連接到 Web 頁面。不需要複雜的組裝工具!從頭到尾開發一個原型只需要 1 到 2 周的時間,這讓你能夠儘早並經常地收集用戶反饋。Vue 2 引入了服務器端渲染(SSR)支持。這讓你可以最小化初期的數據加載,並根據需要請求新的視圖和資源。與高效的組件緩存相結合,可以進一步減少流量消耗。

React 庫能夠做一些令人驚歎的事情。因爲整個用戶界面都是用 JavaScript 定義的,所以你可以使用 JavaScript 的豐富功能在模板中執行各種操作。你只會受到 JavaScript 特性的限制,而不會受到模板框架特性的限制。當你想到完全用 JavaScript 定義的視覺效果時,你可能會想到很多引號、轉義字符和 createElement 調用。別擔心,React 庫允許你(選擇性地)使用可以與 JavaScript 代碼共存的 HTML-like JSX 語法定義可視元素。

React 與其他兩個框架在以下理念上有所不同:

Angular 已經被用在了許多規模最大、最複雜的 Web 應用程序中。

圖片來源:https://www.madewithangular.com/

Angular 借鑑了服務器端開發中的一些最佳特性,並用它們來擴展瀏覽器中的 HTML 標記。這樣,創建具有增強功能的應用程序就更簡單輕鬆了。Angular 應用程序基於 MVC 設計模式構建,這個模型致力於創建具有以下特徵的應用程序:

4Vue.js VS React:雙向數據綁定

在 Vue 中,你可以輕鬆地將組件變量綁定到表單字段。當你更改變量時,表單字段會更新,當用戶更改表單字段時,組件變量也會更新。這比編寫 React 中的事件處理程序要容易得多。

此外,很多人喜歡用圖表展示框架的受歡迎程度,其中 React 是 Angular 的 2 到 3 倍。它從創建移動應用程序(React Native)中獲益頗多,因爲與 Angular Ionic 相比,它更方便。至於 Web 應用程序(ReactJS)開發方面,一切就沒那麼簡單了。

例如,對於 Web 應用程序,我發現,使用 Angular 比使用 ReactJS 更方便。

你可以自己嘗試並比較不同的方向或技術。爲此,你可以在谷歌趨勢中輸入一些關鍵字,它會爲你畫出漂亮的圖表。

5Vue.js vs React vs Angular

與之前的框架不同,Vue.js 是由一個人創建的,他認爲 2013 年已經有的框架都太複雜。Vue 的第一個和第二個版本都是由一個人創建的,因此,在某些方面,它可能比競爭對手更糟糕,尤其是在安全方面。Vue 3 是由一個開發團隊創建的,這意味着現在許多 Bug 和缺點都得到了修復,框架本身的效率也得到了提升。

6 我應該學習 React 還是 Angular?

最好同時學習 Angular 和 React。這兩種框架各有優缺點。專家建議初學者首先學習 Angular,因爲你所需的一切都是 “開箱即用” 的,這樣更不容易犯錯(框架會幫你控制)。在學習了 Angular 之後,你可以學習 ReactJS 和 React Native。另外,如果你只需要移動應用,你也可以直接跳到 React Native。事實上,你只需要學習框架的特性,僅此而已。其餘的知識都是通用的(OOP、TypeScript、RP)。學習框架本身 1 到 2 周就足夠了,你已經可以創建簡單的 Web 應用程序了。

7 結束語

顯然,這三個框架都非常強大,但同時又很不一樣。它們有自己的優勢和劣勢,沒有一個通用的公式可以用來決出一個絕對的贏家。選哪個框架好,要看你正在創建的應用程序和你的特定需求。在做決定之前有必要進行全面的研究。對於那些從事商業投資而不是單個項目的公司來說,這一點尤其重要。

原文鏈接:

https://northell.medium.com/react-vs-vue-vs-angular-what-to-choose-for-web-development-abc5565d3f11


本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/7JUN826nTbxezZxxEMkPZw