天天看點

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

web前端開源架構

大約十年前,JavaScript開發人員社群開始目睹JavaScript架構之間出現的激烈戰鬥。 在本文中,我将介紹一些最著名的架構。 需要特别注意的是,這些都是開放源代碼JavaScript項目,這意味着您可以在開放源代碼許可下自由使用它們,甚至可以為源代碼和社群做出貢獻。

如果您喜歡在探索這些架構時繼續學習,則可以觀看我的視訊。

但是,在開始之前,學習一些JavaScript開發人員在讨論架構時常用的術語将很有用。

術語 這是什麼
Document Object Model (DOM) 網站的樹結構表示形式,其中每個節點都是代表網頁一部分的對象。 網際網路聯盟(W3C)是網際網路的國際标準組織,維護DOM的定義。
Virtual DOM 使用者界面(UI)的“虛拟”或“理想”表示形式保留在記憶體中,并通過諸如ReactDOM之類的庫與“真實” DOM同步。 要進一步探索,請閱讀ReactJS的虛拟DOM和内部文檔。
Data Binding 一種程式設計概念,旨在為通路網站上的資料提供一緻的界面。 Web元素與DOM維護的元素的屬性或屬性相關聯。 例如,當您需要以網頁形式填寫密碼時,資料綁定機制可以使用密碼驗證邏輯進行檢查,以確定密碼采用有效格式。

既然我們已經了解了通用術語,那麼讓我們探索一下那裡的開源JavaScript架構。

構架 關于 執照 釋出日期
ReactJS 由Facebook建立,目前是最受歡迎JavaScript架構 麻省理工學院執照 2013年5月24日
Angular 由Google建立的流行JavaScript架構 麻省理工學院執照 2010年1月5日
VueJS 快速增長JavaScript架構 麻省理工學院執照 2013年7月28日
MeteorJS 功能強大的架構不隻是JavaScript架構 麻省理工學院執照 2012年1月18日
KnockoutJS 開源Model-View-ViewModel(MVVM)架構 麻省理工學院執照 2010年7月5日
EmberJS 另一個開源的Model-View-ViewModel架構 麻省理工學院執照 2011年12月8日
BackboneJS 具有RESTful JSON和Model-View-Presenter模式JavaScript架構 麻省理工學院執照 2010年9月30日
Svelte 開源JavaScript架構未使用虛拟DOM 麻省理工學院執照 2016年11月20日
AureliaJS 現代JavaScript子產品的集合 麻省理工學院執照 2018年2月14日

就上下文而言,這是基于npm趨勢基于每個架構的NPM包下載下傳量的可公開獲得的流行度資料。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

ReactJS

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

ReactJS是Facebook發明的,盡管它是在Angular之後發明的,但它顯然是當今JavaScript架構中的上司者。 React引入了一個稱為虛拟DOM的概念,這是一個抽象副本,開發人員可以在其中僅使用所需的ReactJS功能,而無需重寫整個項目即可在架構中工作。 此外,React項目活躍的開源社群絕對是增長的動力。 以下是React的一些主要優勢:

  • 合理的學習曲線-React開發人員可以輕松建立React元件,而無需用JavaScript重寫整個代碼。 在ReactJS的首頁上檢視ReactJS的好處以及它如何使其變得更容易程式設計。
  • 高度優化的性能-React的虛拟DOM實作和其他功能可提高應用程式渲染性能。 請參閱ReactJS關于如何通過應用程式性能對其性能進行基準測試和測量的描述 。
  • 出色的支援工具-Redux , Thunk和Reselect是用于建構結構良好的可調試代碼的一些最佳工具。
  • 資料綁定的一種方法-“到達”中使用的模型從所有者流到子節點,這僅使跟蹤代碼中的因果關系變得更加簡單。 在ReactJS的資料綁定頁面上閱讀有關它的更多資訊。

誰在使用ReactJS? 自從Facebook發明它以來,該公司本身就在其首頁上大量使用React,據說Instagram完全基于ReactJS庫。 您可能會驚訝地發現, 《紐約時報》 , Netflix和Khan Academy等其他知名公司也在其技術堆棧中實作了ReactJS。

如下所示,您可以從Stackoverflow的研究中看到,ReactJS開發人員可以得到更多的工作,這可能會更加令人驚訝。 嘿,您可以從事開源項目,并獲得報酬。 太酷了!

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

Stackoverflow顯示了對ReactJS開發人員的巨大需求- 來源:2017年開發人員招聘趨勢 -Stackoverflow 部落格

ReactJS的GitHub目前顯示了超過1.3萬的送出和1,377位貢獻者。 它是MIT許可下的一個開源項目。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

角度的

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

Angular緊随其後。 實際上,盡管React是開源開發人員和初創公司中更受歡迎的選擇,但大型公司往往更喜歡Angular(下面列出了一些)。 主要原因是,盡管Angular可能更複雜,但其一緻性和一緻性在大型項目中效果很好。 例如,我在整個職業生涯中都從事過Angular和React的工作,而且我發現大型公司通常認為Angular的嚴格結構是一種優勢。 以下是Angular的其他一些關鍵優勢:

  • 精心設計的指令行界面:Angular具有出色的指令行界面(CLI)工具,可以輕松地引導和使用Angular進行開發。 ReactJS還提供了指令行界面以及其他工具,但是Angular具有廣泛的支援和出色的文檔,如您在此頁面上所見。
  • 單向資料綁定-與React類似,單向資料綁定模型使架構較少受到有害副作用的影響。
  • 對TypeScript的強大支援-Angular與TypeScript具有出色的一緻性,實際上是JavaScript的更多類型強制實施。 它還可以編譯為JavaScript,進而使其成為強制執行類型以減少錯誤代碼的絕佳選擇。

YouTube, Netflix , IBM和Walmart等知名網站都已在其應用程式中實作了Angular。 我親自學習了有關該主題的知識,進而開始使用Angular進行前端JavaScript開發。 我參與了許多涉及Angular的個人和專業項目,但當時是AngularJS調用的Angular1.x。 當Google決定将版本更新到2.0時,他們徹底改造了該架構,然後将其變為Angular。 新的Angular是對以前的AngularJS的完全改造,它淘汰了一些現有的開發人員,同時帶來了新的開發人員。

在撰寫本文時, Angular的 GitHub頁面顯示了17,781個送出和1,133個貢獻者。 它也是具有MIT許可證的開源項目,是以您可以随時将其用于項目或做出貢獻。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

VueJS

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

VueJS是一個非常有趣的架構。 它是JavaScript架構領域的一個新手,但是在過去的幾年中,它的流行性大大提高了。 VueJS由曾從事Angular項目的前Google工程師Evan Yu建立。 該架構如此流行,以至于許多前端工程師現在更喜歡VueJS而不是其他JavaScript架構。 下圖描述了架構随着時間的推移獲得牽引力的速度。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

以下是VueJS的一些關鍵優勢:

  • 更輕松的學習曲線-與Angular或React相比,許多前端開發人員都認為VueJS具有最低的學習曲線。
  • 體積小-與Angular或React相比,VueJS相對較輕。 在其官方文檔中 ,它的大小僅聲明為30 KB,而例如Angular生成的項目則超過65 KB。
  • 簡潔的文檔-Vue擁有詳盡但簡潔明了的文檔。 自己檢視其官方文檔 。

VueJS的GitHub顯示了3099個送出和239個貢獻者。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

流星JS

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

MeteorJS是一個免費的開源同構架構 ,這意味着,與NodeJS一樣,它同時運作用戶端JavaScript和伺服器端JavaScript。 Meteor可以與任何其他流行的前端架構(例如Angular,React,Vue,Svelte等)結合使用。

高通,馬自達和宜家等多家公司使用了Meteor,Dispatch和Rocket.Chat等許多應用程式也使用了Meteor。 在其官方網站上檢視案例研究。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

流星的一些主要功能包括:

  • 線上資料-伺服器發送資料而不是HTML,而用戶端呈現資料。 線上資料主要是指Meteor在頁面加載時形成與伺服器的WebSocket連接配接,然後通過該連接配接傳輸所需資料的方式。
  • 用JavaScript開發一切-用戶端,應用程式伺服器,網頁和移動界面都可以使用JavaScript設計。
  • 支援大多數主要架構-Angular,React和Vue可以全部組合并與Meteor結合使用。 是以,您仍然可以使用自己喜歡的架構,如React或Angular,但仍可以利用Meteor提供的一些出色功能。

到目前為止, Meteor的 GitHub顯示了22,804個送出和428個貢獻者。 對于開源活動而言,這是很多!

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

EmberJS

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

EmberJS是基于Model-view-viewModel(MVVM)模式的開源JavaScript架構。 如果您從未聽說過EmberJS,那麼一定有很多公司正在使用它。 Apple Music,Square,Discourse,Groupon,LinkedIn,Twitch,Nordstorm和Chipotle都将EmberJS用作其技術堆棧之一。 檢查EmberJS的官方頁面以發現所有使用EmberJS的應用程式和客戶。

盡管Ember與我們已經讨論過的其他架構具有類似的好處,但以下是其一些獨特之處:

  • 約定優于配置-Ember标準化命名約定并自動生成結果代碼。 這種方法具有更多的學習曲線,但可以確定程式員遵循最佳建議的做法。
  • 完善的模闆機制-Ember依靠純文字操作,可以動态建構HTML文檔,而對DOM一無所知。

正如人們可能希望從許多應用程式使用的架構中看到的那樣, Ember的GitHub頁面顯示了19,808個送出和785個貢獻者。 太好了!

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

淘汰賽

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

KnockoutJS是一個獨立的開源JavaScript架構,采用帶有模闆的Model-View-ViewModel(MVVM)模式。 盡管與Angular,React或Vue相比,聽說過此架構的人較少,但該項目在開發社群中仍然相當活躍,并利用以下功能:

  • 聲明性綁定-Knockout的聲明性綁定系統提供了一種簡潔而強大的方法來将資料連結到UI。 綁定到簡單資料屬性或使用單個綁定通常很容易。 在KnockoutJS的官方文檔頁面上了解更多有關它的資訊 。
  • 使用者界面自動重新整理
  • 依賴跟蹤模闆

Knockout的GitHub頁面顯示了約1,766項送出和81位貢獻者。 與其他架構相比,這些數字沒有那麼重要,但是該項目仍在積極維護中。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

BackboneJS

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

BackboneJS是具有RESTful JSON接口的輕量級JavaScript架構,基于Model-View-Presenter(MVP)設計範例。

據說該架構供Airbnb ,Hulu,SoundCloud和Trello使用。 您可以在Backbone的頁面上找到所有這些案例研究。

BackboneJS GitHub頁面顯示3,386個送出和289個貢獻者。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

斯維爾特

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

Svelte是一個開放源代碼JavaScript架構,該架構生成用于操作DOM的代碼,而不包含架構引用。 在某些情況下,在建構時而非運作時将應用程式轉換為JavaScript的過程可能會稍微提高性能。

截至撰寫本文時, Svelte的 GitHub頁面顯示了5,729個送出和296個貢獻者。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

奧雷利亞

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

名單上的最後一個是Aurelia 。 Aurelia是一個前端JavaScript架構,它是現代JavaScript子產品的集合。 Aurelia具有以下有趣的功能:

  • 快速渲染-Aurelia聲稱其架構可以比當今任何其他架構更快地渲染。
  • 單向資料流-Aurelia使用基于可觀察的綁定系統,該系統将資料從模型推送到視圖。
  • 使用普通JavaScript進行建構-您可以使用普通JavaScript來建構網站的所有元件。

截至撰寫本文時, Aurelia的 GitHub頁面顯示788個送出和96個貢獻者。

web前端開源架構_9個用于前端Web開發的開源JavaScript架構

這就是我在檢視JavaScript架構世界中的新增内容時發現的。 我是否錯過了任何有趣的架構? 随時在評論部分分享您的想法!

翻譯自: https://opensource.com/article/20/5/open-source-javascript-frameworks

web前端開源架構