轉載請註明出處:葡萄城官網,葡萄城爲開發者提供專業的開發工具、解決方案和服務,賦能開發者。php
儘管 Web開發的典型應用場景除了將服務器用做平臺、瀏覽器用做客戶端以外,幾乎不多活躍於其餘業務領域,但不能否認JavaScript 語言和框架的使用已經成爲了主流。Angular、React 和 Vue,做爲 JavaScript 的三大框架已逐步發展成熟,三者的差別性也愈加明顯,假設JavaScript還會繼續流行十年左右,將來十年,你將會做何選擇?前端
AngularJS 自2009年誕生,至今已有十年曆史。在這短短十年中,其對 Web 社區的發展產生了十分深遠的影響。做爲一款優秀的 JavaScript 框架,在其推出一年後,便在全球引發了普遍關注,現在更是在Google的 600 多款產品中得以成功運用,如Firebase控制檯、谷歌分析、谷歌快車、谷歌雲等。vue
AngularJS有着諸多核心特性,包含:MVC(Model–view–controller)、模塊化、自動化雙向數據綁定、語義化標籤、依賴注入等。Angular 最新版 7.0.0 已於2018年10月發佈,下一版本預計將於今年第二季度正式上線。如下是Angular 7 針對性能、命令行工具和Material Design組件的優化項:ios
Angular 7 虛擬滾動web
Angular 7 拖放效果編程
Angular的出現,在Web社區引起了強烈轟動。兩年後,Facebook 也推出了一款一樣具有豐富功能的JavaScript UI組件庫——React。axios
使用React,意味着您將用一種更簡約的方式開始前端開發,這也是大部分開發人員所期待的:瀏覽器
很少,卻正好夠用,您徹底能夠根據本身的須要,自由添加任何組件庫,它們包括:安全
Google 和 Facebook 做爲 Web 社區開源項目的主要發起者,彼此之間從未中止過競爭,尤爲是關於 Angular 和 React 之間的辯論已經持續了四年之久。但嚴格來講,將Angular與React進行比較並不徹底公平,由於Angular是一個功能齊全、組件豐富的框架,而React只是一個UI組件庫。爲了解決這個問題,咱們將就 Angular 框架中的一些經常使用組件庫與 React 進行對比。前端框架
Angular提供了比React更多開箱即用的功能,如:
其中,依賴注入等功能做爲 Angular 的核心,您沒法選擇不使用它們,這好像一把雙刃劍,在帶來強大功能模塊的同時,也使得Angular 變得愈來愈笨重。
固然,Google工程師已經意識到了這個問題,也在必定程度上致力於簡化Angular框架的複雜性,但願在 Angular 8 中能讓人耳目一新。
在React 與 Angular孰優孰劣的討論逐步升溫的時候,另外一個JavaScript框架Vue抵達了現場,使得這場最優Web開發框架的角逐變得更加白熱化。
Vue.js 是由Google的核心開發工程師——尤雨溪(Evan You)所建立的框架,做爲一個比 React 和 Angular 都更年輕的框架,Vue 從它們那裏借鑑了好的部分,即函數式和麪向對象編程的混合體。2014年2月(在微軟收購GitHub平臺四年以前),Evan You在GitHub上發佈了第一個穩定版本的Vue,標誌着一個構建數據驅動的 Web UI的漸進式框架就此誕生。
儘管沒有獲得谷歌和Facebook等科技巨頭的支持,但自2018 年以來,Vue一直受到開發者的普遍關注。從去年幾大主流前端開發框架的熱度來看,大多數知曉 Vue 的開發者都表示有興趣學習它。
也許,那些已經熟練掌握Angular和React前端框架的開發人員也應該花些時間去了解一下這個簡單、小巧、省心的前端框架,但願下面的內容能對你有所幫助。
若是前端框架的學習不包含TypeScript(即使 TypeScript 一般被認爲是JavaScript的增集,但要徹底掌握仍須要學習額外的類處理過程),那麼 React和Vue的學習速率都高於Angular。
相對於 React,許多初學者認爲Vue的學習成本更低,由於它提供了更加豐富的資源文檔和中文支持。事實上,Vue和React學習速率的實際狀況是大體相同的,因爲大部分Vue的學習資料直接以單個Web應用程序的開發實踐開始,直觀且清晰的代碼邏輯的確能夠幫助初學者更快入門,可是,隨着學習內容的深刻,當您須要開發複雜的Web應用程序時,花哨靈活的指令和邏輯反而會讓人以爲Vue比React更難掌控。
React是一個已經存在近十年的Facebook開源項目,所以它擁有更加成熟的技術社區支持。儘管 Vue 已經成功地在短短几年間吸引了至關多的追隨者,但在它真正創建出一整套完善且豐富的生態系統以前,仍須要更多人和時間的打磨。
當你看到許多使用Vue完成的項目時,你會注意到,其總體的設計理念更趨向現代化,這是由於 Vue 還是一個相對較新的框架,好比,這個示例。
衆多周知,React所包含的工具、組件庫和代碼包的數量更多,但Vue靈巧、精緻和簡單卻更加使人印象深入。
前端幾乎無安全可言!固然,這裏所指的安全性,僅僅是 React 和 Vue 這兩個框架之間的對比,相對於React,Vue更爲小衆且不一樣,所以在面對大規模黑客攻擊的時候,React更容易成爲目標。
Vue和React一樣都容易受到跨站點腳本(XSS)攻擊,這也是Web應用程序中最爲常見的安全漏洞。XSS攻擊容許攻擊者將客戶端腳本注入到其餘用戶查看的網頁中,以影響其關聯的任何JavaScript Web應用程序。
PS:緩解此問題的最佳方法是將數據保存在腳本以外,加入黑名單機制並從白名單中進行數據驗證。
這也是爭議最大的地方。React 專一於 UI,因此在構建 UI 組件時能夠從它那裏得到很好的支持。Vue做爲一個漸進式框架,只容許使用最基本的功能來構建應用程序,但同時也提供了一些開箱即用的東西:如,用於狀態管理的 Vuex、用於應用程序 URL 管理的 Vue Router、Vue 服務器端渲染。
Vue剝離了許多元素,相比之下React更加全面。但若是您正在尋找一種精簡、新穎、簡單易學、樣板代碼少、高性能、靈活且完整的前端框架,Vue更加適合;固然,若是您打算使用低版本jQuery代碼,Vue也一樣支持。
React的靈活性則更多依賴於其背後強大的技術社區,在 Facebook 的強力支撐下(Facebook 的 React 團隊包括了 10 名專職開發人員),提供了更多工具、UI庫和教程。
若是您的開發理念更趨向全棧文化、跨平臺、保持獨特、引領潮流而不是跟隨,那麼您必定會喜歡Vue;但若是您的項目須要大量熟練使用該框架的前端開發者、大量的工具及第三方庫,那麼您最好使用React。不太小孩子才作選擇,您最須要的應該是一個全面兼容 Angular、React和Vue的前端開發工具包——WijmoJS。
截至2019年初,Angular、React和Vue之間的競爭持續升溫,愈來愈多的開發人員開始拋棄Google項目,就商業開發工具的提供者而言,Vue的將來一片光明。
爲開發速度更快的 Web 應用程序而選擇了Vue的人有明顯的增加,Vue 頗有趣,開發起來也很簡單。雖然,React依託於其龐大的生態圈,在目前爲止,處理更復雜的 Web 項目時佔據優點,但隨着前端社區內大量 Vue 追隨者的出現、Vue 社區穩定增加的良好氛圍,都在暗示着 Vue 很快就會變得像 React 同樣受歡迎。
做者儘可能保持着公正的態度,客觀地分析了上述三個前端框架,而做爲前端開發者,面對 Angular、React 和 Vue,你會做何選擇?爲何?若是您有任何問題或意見,歡迎在文末回覆討論。