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