摘要:同比與去年同期的同比變化率。我們對調查報告進行分析數據統計時間與本文時間差距較遠,數據存在延后。這意味著你可以獲得語法高亮,支持以及更容易使用預處理器如或。的是一個類似語法的可選預處理器,并可在中進行編譯。
一些歷史
Angular 是基于 TypeScript 的 Javascript 框架。由 Google 進行開發和維護,它被描述為“超級厲害的 JavaScript MVW 框架”。Angular(也被稱為 “Angular 2+”,“Angular 2” 或者 “ng2”)已被重寫,是與 AngularJS(也被稱為 “Angular.js” 或 “AngularJS 1.x”)不兼容的后續版本。當 AngularJS(舊版本)最初于2010年10月發布時,仍然在修復bug,等等 —— 新的 Angular(sans JS)于 2016 年 9 月推出版本 2。最新的主版本是 4,因為版本 3 被跳過了。
React 被描述為 “用于構建用戶界面的 JavaScript 庫”。React 最初于 2013 年 3 月發布,由 Facebook 進行開發和維護,Facebook 在多個頁面上使用 React 組件(但不是作為單頁應用程序)。
Vue 是 2016 年發展最為迅速的 JS 框架之一。Vue 將自己描述為一款“用于構建直觀,快速和組件化交互式界面的 MVVM 框架”。它于 2014 年 2 月首次由 Google 前員工 Evan You 發布。
背景對比對比 | Vue | React | Angular |
---|---|---|---|
出現年月 | 2014-2 | 2013-3 | 2010-10 |
框架類型 | MVVM | MVC | MVW |
開源許可 | MIT license | BSD3-license | MIT license |
MIT許可協議(The MIT License)是許多軟件許可條款中,被廣泛使用的其中一種。與其他常見的軟件許可協議(如GPL、LGPL、BSD)相比,MIT是相對寬松的軟件許可協議。
BSD 許可協議(Berkeley Software Distribution license),是自由軟件中使用最廣泛的許可協議之一。BSD 就是遵照這個許可證來發布,也因此而得名 BSD 許可協議。
MIT license 與 BSD-license 之間的區別是:MIT license 允許衍生軟件加上我們自己的名字做推廣,而 BSD license 不可以。開發對比
Vue | React | Angular | |
---|---|---|---|
開發與維護 | 獨立開發者 | ||
團隊人數 | 25 | 未知 | 40 |
stars | forks | issues | updated | created | |
---|---|---|---|---|---|
angular.js | 59308 | 29000 | 487 | Dec 18, 2018 | Jan 6,2010 |
Vue | 122678 | 17540 | 230 | Dec 20, 2018 | Jul 29,2013 |
React | 117977 | 21403 | 525 | Dec 20, 2018 | May 25,2013 |
angular | 43663 | 11223 | 2618 | Dec 20, 2018 | Sep 19,2014 |
統計的數據有時效性,如需了解最新的數據點我
流行度對比 國內流行度百度指數上的一個比較
搜索指數:指的是關鍵詞最近一個月的總體搜索指數表現。
日均值:一段時間內搜索指數日均值。
同比:與去年同期的同比變化率。
環比:與上一個相鄰時間段(即上一個7天/30天)的環比變化率。
搜索指數趨勢:互聯網用戶對鍵詞搜索關注程度及持續變化情況。
算法說明:以網民在百度的搜索量為數據基礎,以關鍵詞為統計對象,科學分析并計算出各個關鍵詞在百度網頁搜索中搜索頻次的加權。
國外流行度npm趨勢
谷歌趨勢
熱度隨時間變化的趨勢
算法說明:數字代表相對于圖表中指定區域和指定時間內最高點的搜索熱度。熱度最高的字詞得 100 分;熱度是前者一半的字詞得 50 分;沒有足夠數據的字詞得 0 分。
2. 按區域比較細分數據
stackoverflow
Stack Overflow 是一個與程序相關的 IT 技術問答網站。該網站擁有 400 萬用戶,每月 5.6 億的頁面瀏覽量。
我們對 Stack Overflow 2018 調查報告 進行分析(數據統計時間與本文時間差距較遠,數據存在延后)。
目前最流行的技術框架排名:
Angular 與 React 排名靠前,Vue 未上榜。 * 目前大家最喜愛的技術框架排名:
相對 Angular 來說,React 的表現很搶眼,Vue 未上榜。
statejs
statejs 網站使用了一套包含上百個問題的問卷調查,從超過 20000 名開發者中得出的 2018 年關于前端框架調查,結果 如下:
較多開發者想學 Vue,而 React 目前擁有最多的開發者。
總結:國內 流行 Vue,國外流行 React。
------------------------------
技術對比對比 | Vue | React | Angular |
---|---|---|---|
基于組件 | 擅長 | 擅長 | - |
依賴標準 | ES6 或 ES6 | ES6 | TypeScript |
底層技術 | 單個文件(模板+腳本+樣式) | JSX | 模板 |
數據綁定 | 單/雙向綁定 | 單向綁定 | 雙向綁定 |
支持原生開發 | 支持(Weex) | 支持(react-native/react-native-renderer) | 支持(NativeScript、Ionic) |
服務端渲染 | nuxt.js | next.js | Angular Universal |
瀏覽器兼容 | ie8 + | ie9 + | ie9 + |
學習曲線 | 簡單 | 中等 | 陡峭 |
基于組件:一個組件得到一個輸入,并且在一些內部的行為/計算之后,它返回一個渲染的 UI 模板作為輸出。定義的組件可以很容易在網頁或其他組件中重用。
依賴標準:Vue 與 React 使用的都是 javaScript 語言標準,差別不大。Angular 是 javaScript 的超集,添加了可選的靜態類型和基于類的面向對象編程;但與整個 JavaScript 語言相比,目前 TypeScript 的用戶群仍然很小。
底層技術
Vue 具有“單個文件組件”。這似乎是對于關注分離的權衡 - 模板,腳本和樣式在一個文件中,但在三個不同的有序部分中。這意味著你可以獲得語法高亮,CSS 支持以及更容易使用預處理器(如 Jade 或 SCSS)。
React 的 JSX 是一個類似 HTML 語法的可選預處理器,并可在 JavaScript 中進行編譯。因為代碼寫在同一個地方,所以可以在代碼完成和編譯時更好地檢查。如果在 JSX 中輸入錯誤時,React 將無法通過編譯,它會打印出錯的位置。
Angular 模板使用特殊的 Angular 語法(比如 ngIf 或 ngFor)來增強 HTML。雖然 React 需要 JavaScript 的知識,但 Angular 會迫使你學習 Angular 特有的語法。
數據綁定:當 UI 元素(例如,用戶輸入)被更新時,Angular 的雙向綁定會改變 model 狀態。Angular 的方式實現起來代碼更干凈,開發人員更容易實現。在 React 中實現該功能,必須先更新 model,然后渲染 UI 元素。React 的方式會有更好的數據總覽,因為數據只能在一個方向上流動,這樣更容易調試。
支持原生:Angular 擁有用于原生應用的 NativeScript(由 Telerik 支持)和用于混合開發的 Ionic 框架。借助 React,你可以試試 react-native-renderer 來構建跨平臺的 iOS 和 Android 應用程序,或者用 react-native 開發原生 app。
Weex 允許你使用 Vue 語法開發不僅僅可以運行在瀏覽器端,還能被用于開發 iOS 和 Android 上的原生應用的組件。另一個選擇是 NativeScript-Vue,一個用 Vue.js 構建完全原生應用的 NativeScript 插件。
服務端渲染:Javascript 框架在客戶端上渲染頁面。這對于性能,整體用戶體驗和 SEO 是不利的。服務器端預渲染是一個好辦法。所有這三個框架都有相應的庫來實現服務端渲染。React 有 next.js,Vue 有 nuxt.js,而 Angular 有...... Angular Universal。
瀏覽器兼容:
React兼容所有常用的瀏覽器,包括IE9及以上的版本。
注意:我們不支持那些不兼容ES5方法的老版瀏覽器,但如果你的應用包含了polyfill,例如es5-shim 和 es5-sham,你可能會發現你的應用仍然可以在這些瀏覽器中正常運行。如果你選擇這么干,你就只能孤軍奮戰了。
Vue 不支持 IE8 及以下版本,因為 Vue 使用了 IE8 無法模擬的 ECMAScript 5 特性。但它支持所有兼容 ECMAScript 5 的瀏覽器。
學習曲線:
Angular 的學習曲線是非常陡峭的——作為一個框架,它的 API 面積比起 Vue 要大得多,你也因此需要理解更多的概念才能開始有效率地工作。當然,Angular 本身的復雜度是因為它的設計目標就是只針對大型的復雜應用;但不可否認的是,這也使得它對于經驗不甚豐富的開發者相當的不友好。
對于 React,你可能需要針對第三方庫進行大量重大決策。僅僅 React 中就有 16 種不同的 flux 軟件包來用于狀態管理可供選擇。
Vue,你只需要有良好的 HTML 和 JavaScript 基礎。有了這些基本的技能,你就可以非常快速地通過閱讀 指南 投入開發
體積和性能 體積任何框架都不會十全十美:Angular 框架非常臃腫。gzip 文件大小為 143k,而 Vue 為 23K,React 為 43k。
為了提高性能,React 和 Vue 都使用了虛擬 DOM(Virtual DOM)。性能
Angular,React 和 Vue 性能比較(源文件)
內存分配內存分配(源文件)
總結一下:Vue 有著很好的性能和高深的內存分配技巧。如果比較快慢的話,這些框架都非常接近(比如 Inferno)。請記住,性能基準只能作為考慮的附注,而不是作為判斷標準。
本文首發于github,如果對你有幫助,可以給我點個star,謝謝
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100474.html
摘要:明明如日中天,把它與倒過來,給加點東西或可與抗衡。在之后,大版本有十數個,只有最近推的才回歸正常等后人總結歷史,無疑會把與之間的所有都稱為垃圾。讓網頁支持所見即得的可視化設計,是框架的最高形態,以前沒有類似工具,主要因為技術做不到。 好吧,我承認我是標題黨。React 明明如日中天,把它與 Vue 倒過來,給 Vue 加點東西或可與 React 抗衡。不過,這兩年 Vue 干的正是這事...
摘要:文章內容分兩部分前半部分為迭代器模式概念后半部分為中迭代器上半部分開始迭代器模式提供一種方法順序訪問一個聚合對象中的各個元素,而又不需要暴露該對象的內部表示。下半部分開始的迭代器迭代器等同于遍歷器。執行該函數,會返回一個遍歷器對象。 showImg(https://segmentfault.com/img/bVbuyaZ?w=800&h=600); 文章內容分兩部分: 前半部分為 迭...
摘要:它會檢測出最大靜態子樹就是不需要動態性的子樹并且從渲染函數中萃取出來。這樣在每次重渲染的時候,它就會直接重用完全相同的同時跳過比對。需要注意的是,中的操作必須是同步的,不可以存在異步操作的情況。 新增:哈哈,最近又推出了 vue 的文章,在這里放個鏈接~手把手教你從零寫一個簡單的 VUE 感謝有人看我扯技術,這篇文章主要介紹最近非常火的vue2前端框架的特點和vue2+vuex2+we...
摘要:它會檢測出最大靜態子樹就是不需要動態性的子樹并且從渲染函數中萃取出來。這樣在每次重渲染的時候,它就會直接重用完全相同的同時跳過比對。需要注意的是,中的操作必須是同步的,不可以存在異步操作的情況。 新增:哈哈,最近又推出了 vue 的文章,在這里放個鏈接~手把手教你從零寫一個簡單的 VUE 感謝有人看我扯技術,這篇文章主要介紹最近非常火的vue2前端框架的特點和vue2+vuex2+we...
閱讀 3380·2021-11-22 09:34
閱讀 650·2021-11-19 11:29
閱讀 1350·2019-08-30 15:43
閱讀 2232·2019-08-30 14:24
閱讀 1866·2019-08-29 17:31
閱讀 1223·2019-08-29 17:17
閱讀 2616·2019-08-29 15:38
閱讀 2728·2019-08-26 12:10