九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Vue和React大比拼,你pick誰?

策劃|覃云
譯者|無明
上個月,Vue 在 GitHub 上的 star 數(shù)超過了 React,此后,各大論壇對 Vue 和 React 的爭論就愈演愈烈,Reddit 上還有開發(fā)者專門開了一個 Vue vs React 的話題。對此,小編搜集了一些資料,對 React 和 Vue 進行全方位的比較,看哪個框架更適合用在新的基礎(chǔ)架構(gòu)中,也希望給大家一些啟發(fā)。
React vs Vue

下文將在學(xué)習(xí)曲線、代碼風(fēng)格、單個文件組件、性能、靈活性、工具、移動開發(fā)、社區(qū)、成熟度、團隊支持等方面對 React 和 Vue 進行比較。

 學(xué)習(xí)曲線

React

React 的官方文檔為新手提供了一些入門指南,具有一定前端框架開發(fā)經(jīng)驗的開發(fā)人員可以在幾個小時內(nèi)理解框架的核心原理。

官方的 React 文檔算是比較完整地,但不如 Vue 的官方文檔那么清晰有序。文檔涵蓋了必要的一些流程,但仍然缺少一些邊緣用例說明。隨著項目越變越大,這些邊緣用例會變成用戶痛點。

React 不算是一個完整的框架,它提供了核心,而其他大多數(shù)高級的組件是由社區(qū)開發(fā)的,這無疑給學(xué)習(xí)曲線增加了一些復(fù)雜性。

Vue

Vue 庫可以簡單地作為 HTML 頁面資源加載,因此,使用 Vue 無需額外的構(gòu)建步驟??梢娺@個庫有多么的低調(diào),不知不覺中為我們節(jié)省了很多時間。

因為 Vue 與 React 有一些通用的概念,開發(fā)人員從 React 轉(zhuǎn)到 Vue 會相對容易。另外,Vue 的官方文檔寫得非常詳盡,涵蓋了開發(fā)人員在開發(fā) Vue 應(yīng)用程序時需要的所有內(nèi)容。

Vue 的定義比 React 更嚴(yán)格。在 Vue 中,很多問題直接在文檔中得到了解答,不需要在其他地方搜索答案。

 代碼風(fēng)格

React

React 引入了一系列基于函數(shù)式編程的概念,簡化了 UI 應(yīng)用程序的開發(fā)過程。最值得注意的是:

JSX 支持在 JavaScript 代碼中編寫 HTML,它也是 React 作為函數(shù)式編程范式的強大推動力之一,在這個領(lǐng)域內(nèi),它是佼佼者。

它的組件生命周期提供了一種直觀的方式來連接組件“生命周期”中的特定事件(如創(chuàng)建、更新等)。

Vue

作為一個比 React 和 Angular 都更年輕的框架,Vue 從它們那里借鑒了好的部分,是函數(shù)式和面向?qū)ο缶幊痰幕旌象w。

默認(rèn)情況下,Vue 的編碼風(fēng)格在某些方面與 Angular 有點相似,同時又消除了 Angular 的大部分痛點。Vue 將 HTML、JS 和 CSS 分開,就像 Web 開發(fā)人員已習(xí)慣了多年的傳統(tǒng)開發(fā)方式,但如果你喜歡,也可以使用 JSX。

Vue 的組件生命周期比 React 更直接和直觀。一般來說,Vue 的 API 比 React 更寬泛但更簡單。

 單文件組件

React

在 React 中,因為使用了 JSX,單文件組件是作為 JavaScript 模塊而存在的,因此,React 提供了特定的方式來編寫 HTML、CSS 和 JavaScript。

使用 JavaScript 編寫所有的東西可以減輕在組件內(nèi)部創(chuàng)建動態(tài) HTML 的負(fù)擔(dān)。當(dāng)然,在使用 JSX 時,可以使用純 JavaScript 來生成模板。

也就是說,因為 React 的特殊語法,在 React 中編寫組件需要更多的學(xué)習(xí)和練習(xí)。

Vue

Vue 的單文件組件分為三個獨立的部分:< template="">、< script="">和< style="">,每個部分都包含相應(yīng)類型的代碼,因此對于傳統(tǒng)型 Web 開發(fā)人員來說會更自然。

作為一個漸進式框架,Vue 提供了簡單的定制能力。例如,只需要一個簡單的配置,就可以使用 JSX 代替< template="">。另外,只需要在< style="">中添加 lang=“scss”屬性,就可以編寫 SCSS 而不是純 CSS。類似地,將scoped 屬性添加到< style="">中,Vue 組件就可以實現(xiàn)開箱即用的 CSS 作用域(也就是 CSS 模塊)。

React 的 JS/JSX 組合使用起來沒什么問題,只是有時候顯得有點混亂(特別是在添加樣式組件時)。需要指出的一點是,在使用 SFC 時需要額外的構(gòu)建步驟,而 Vue 不需要。如果你選擇了 React,這可能會是一個問題,因為 JSX 需要額外的構(gòu)建步驟。如果你希望可以直接將腳本文件加入項目中而不需要重新構(gòu)建,那么 React 可能不是你的菜,除非你愿意使用 React.createElement() 代替 JSX。所以,在這種情況下,Vue 可能是更好的選擇。

 性能

React

庫大?。ㄍㄟ^網(wǎng)絡(luò)傳輸 / 未壓縮):32.5KB/101.2KB。

在 DOM 操作方面,React 的整體性能非常好。它比 Angular 快得多,但比 Vue 慢一些。

React 提供了開箱即用的服務(wù)器端渲染(SSR)支持,這對某些類型的實現(xiàn)來說可能很有用。

內(nèi)置支持捆綁和搖樹優(yōu)化(tree-shaking),以便最大限度地減少最終用戶的資源負(fù)擔(dān)。

Vue

庫大?。ㄍㄟ^網(wǎng)絡(luò)傳輸 / 未壓縮):31KB/84.4KB。

除了速度快,Vue 還是一個漸進式框架。它的核心庫只專注于視圖層,所以可以輕松上手,并與其他庫或現(xiàn)有項目集成在一起。

與 React 類似,Vue 內(nèi)置支持捆綁和搖樹優(yōu)化,以便最大限度地減少最終用戶的資源負(fù)擔(dān)。

 靈活性

React

React 專注于 UI,所以在構(gòu)建 UI 組件時可以從它那里獲得很好的支持。

React 官方庫不提供一些高級功能,如狀態(tài)管理。大多數(shù) React 應(yīng)用程序都使用 Redux 進行狀態(tài)管理,而 MobX 也正在獲得人們的關(guān)注。

router 不屬于官方庫的一部分,而是作為第三方包,由 React 團隊提供支持。

Vue

作為一個漸進式框架,Vue 只允許使用最基本的功能來構(gòu)建應(yīng)用程序,但同時也提供了一些開箱即用的東西:用于狀態(tài)管理的 Vuex、用于應(yīng)用程序 URL 管理的 Vue Router、Vue 服務(wù)器端渲染。

 工具

React

React 有一個叫作 create-react-app 的第三方 CLI 工具,可作為在 React 項目中構(gòu)建新應(yīng)用程序和組件的腳手架。

CLI 工具還支持運行單元測試和端到端測試、代碼 linting 和本地開發(fā)服務(wù)器。

在 IDE 方面,React 官方和社區(qū)都提供了非常好的支持。

Vue

Vue 有一個叫作 Vue CLI 的官方 CLI 工具,與 React 的 create-react-app 非常相似,Vue CLI 為新開發(fā)的應(yīng)用程序提供了腳手架。

此外,主要的 IDE 對 Vue 都有很好的支持(不如 React,但有 WebStorm 和 VSCode 坐鎮(zhèn))。

在某些方面,Vue 的工具真的很棒。另外,Vue 與 Typescript 的集成現(xiàn)在還不完美,如果考慮與 TS 集成,還是選擇 React。

 移動開發(fā)

React

React 有一個用于構(gòu)建原生移動應(yīng)用程序的移植版本,也就是 React Native,它是當(dāng)前“編寫一次(在 JavaScript 中),到處使用(在原生 iOS 和 Android 中)”的解決方案。

生產(chǎn)環(huán)境中有很多使用 React Native 構(gòu)建的應(yīng)用程序。

Vue

對于 Vue 來說,構(gòu)建移動原生應(yīng)用程序不僅只有一種選擇。與 React Native 不一樣的是,在 Vue-Mobile-Native 領(lǐng)域并沒有明確的領(lǐng)導(dǎo)者。

NativeScript 可能算得上是佼佼者(它也是 Angular 的領(lǐng)先解決方案),但除此之外還有 Weex 和 Quasar。

 社區(qū)

React

在 StackOverflow 網(wǎng)站上,使用 #reactjs 標(biāo)記的大概有 88,000 個問題。超過 40,000 個 npm 包可供 React 開發(fā)人員下載使用。

在最近的一個有關(guān)前端工具調(diào)查中,超過 40%的受訪者表示他們對使用 React 感到滿意。

React 的社區(qū)確實很重要,但比 Vue 社區(qū)更分散,而且很難為常見問題直接找到答案。

Vue

在 StackOverflow 網(wǎng)站上,使用 #vue 標(biāo)記的問題有 18,000 個。可安裝的 npm 包有近 10,000 個。

在最近的一次調(diào)查中,17%的受訪者表示他們對使用 Vue 感到滿意。但事實上,與 React 相比,有兩倍的開發(fā)人員表示對學(xué)習(xí) Vue 感興趣,因此 Vue 開發(fā)人員市場的增長在未來可能會比 React 更快。

在 GitHub 上,Vue 的 Star 數(shù)超過了 React。

Vue 開發(fā)中的大多數(shù)問題都可以直接在文檔中找到答案,當(dāng)然,來自社區(qū)的答案會更加精準(zhǔn)。

 成熟度

React

React 于 2013 年 3 月發(fā)布。

SimilarTech 的數(shù)據(jù)顯示,React 已經(jīng)被用在 205,000 個領(lǐng)域中,每月增長率為 2.46%。

React 在生產(chǎn)方面經(jīng)過了很好的測試,超過了 Vue。React 建立了一個龐大的社區(qū),背后有 Facebook 在撐腰。

Vue

Vue 于 2014 年 2 月發(fā)布。

SimilarTech 的數(shù)據(jù)顯示,Vue 已經(jīng)被用在 26,000 個領(lǐng)域中,每月增長率為 3.34%。

大約一年半前,Vue 成為了一個標(biāo)準(zhǔn)。它已被廣泛使用,包括一些大公司,如 GitLab、阿里巴巴、百度等。

 支持

React

React 由 Facebook 創(chuàng)建和維護,在 Facebook,有一個團隊定期為 React 提供支持(React 也被用于 Facebook 的很多項目中)。

據(jù)稱,F(xiàn)acebook 的 React 團隊包括 10 名專職開發(fā)人員。但值得注意的是,F(xiàn)acebook 研發(fā)部門的多個團隊正在將 React 用于內(nèi)部和外部的項目中,并且每個團隊都可以將變更請求推送到代碼庫中。

React 基于 RFC,沒有所謂的發(fā)展路線圖。

Vue

Vue 是一個獨立的庫,由尤雨溪創(chuàng)建。他還負(fù)責(zé)管理 Vue 的維護和發(fā)展路線圖。

Vue 團隊包括 23 名專職開發(fā)人員。

Vue 的路線圖可以在他們的 GitHub 倉庫中看到(https://github.com/vuejs/roadmap)。

 人才招聘

React

因為 React 是目前最流行的框架,所以 React 開發(fā)人員在市場中頗具優(yōu)勢。

此外,通過學(xué)習(xí) React,可以讓開發(fā)人員的簡歷錦上添花,因為他們將獲得有關(guān) React 的寶貴經(jīng)驗。

Vue

Vue 是前端行業(yè)的新“熱點”。當(dāng)然,它也有自己的缺點,不過一直以來,Vue 持續(xù)獲得關(guān)注,并且開發(fā)人員都急切地想?yún)⑴c Vue 項目,唯恐落于人后?,F(xiàn)在,找到對 Vue 有一定經(jīng)驗的開發(fā)人員并不罕見。

 整體優(yōu)點

React

  • 行業(yè)標(biāo)準(zhǔn)

  • 大量熟練使用該框架的前端開發(fā)者

  • 更容易招到有經(jīng)驗的前端開發(fā)者

  • 有穩(wěn)定的過去和大公司的支持,更安全的未來和穩(wěn)定性

  • 龐大的社區(qū),大量的工具和第三方庫

  • Web 和移動應(yīng)用可以共享一些代碼

Vue

  • Vue 內(nèi)置的核心模塊(Vuex、Router 等)非常棒

  • 面向“未來”,而不是“現(xiàn)在”

  • 保持獨特,引領(lǐng)潮流而不是跟隨

  • 更快的起步,前端開發(fā)者和后端開發(fā)者都感覺 Vue 代碼很自然,速度很快

  • 更好地促進全棧文化,允許跨產(chǎn)品開發(fā)

 整體缺點

React

  • 前端開發(fā)者和后端開發(fā)者之間區(qū)分得很清楚,需要很多學(xué)習(xí)才能成為專家

  • 需要更多的時間來訓(xùn)練開發(fā)者

  • 交付較慢(至少對于最初的發(fā)布來說)

Vue

  • 更具實驗性,不是冒險,而是前衛(wèi)

  • 更難找到經(jīng)驗豐富的 Vue 開發(fā)者

  • 可用的插件和工具更少,社區(qū)更小。

  • 開發(fā)者不像 React 那樣有那么多經(jīng)驗

 更 多  

Vue 使用了 DSL 并且具有較大的 API 表面,這也是人們認(rèn)為不好的地方。這些都是事實,至少它具有比 React 更大的 API 表面。Vue 使用的 DSL 是另一種抽象,就像 SFC 一樣。它們旨在提高你的開發(fā)效率并保持代碼的整潔。JSX 的存在也是出于同樣的原因,它也是一種非標(biāo)準(zhǔn)的抽象,但同時又能讓你充分利用 JavaScript 的全部威力。但 JSX 不是 JavaScript,而且永遠(yuǎn)不會是。Airbnb 的樣式指南禁止在.js 文件中包含 JSX,因為它們是非標(biāo)準(zhǔn)的,它們必須被包含在單獨的.jsx 文件中。

一旦你熟悉了 Vue 的 DSL,就可以提高開發(fā)效率,因為它提供了很多輔助方法。另一方面,你也需要學(xué)習(xí)很多 Vue 的特定語法。有些人認(rèn)為學(xué)習(xí)新 API 需要額外的認(rèn)知成本,這是無可厚非的。因為 React 同樣引入了重大的認(rèn)知成本,而原因卻恰恰相反,它的小 API 表面意味著,為了完成某些功能,我們需要使用相對復(fù)雜的模式。但請記住一點,React 也一直在演化。React 團隊一直在響應(yīng) React 用戶的需求,并在他們認(rèn)為有意義的地方做出改進。Context、Time Slicing、Suspense,這些特性已經(jīng)或者即將被添加進來。

接下來讓我們談?wù)劤橄?。這些前端框架都做到了或多或少的抽象。使用純 JS 開發(fā)聲明式 UI 組件非常困難,于是 React 和 Vue 出現(xiàn)了,它們還提供了一系列有用的補充,讓我們可以將 State 綁定到 DOM,而不需要將它們保存在 DOM 中,并進行高效的渲染。

也就是說,如果你不想,也可以不用 Vue 的模板和 DSL,如果你想,也可以使用 React 的 JSX 或 createElement() 函數(shù)。你還可以自己選擇模板語言,如 Pug。Vue 在這方面非常靈活,不知道人們是否也意識到了這一點。使用 SFC 編寫真正的 UI 組件,使用純 JS 編寫無渲染組件(只導(dǎo)出沒有模板或樣式的腳本塊),然后根據(jù)需要切換到 JSX 或渲染函數(shù),這樣給了你更大的控制權(quán),并保持代碼的整潔。

當(dāng)你開始編寫更高級的組件或真正可重用的組件(特別是包裝其他組件的組件,為其他組件提供額外的行為)時,就可以看到一些很明顯的差別。在使用 React 時,你需要用到高階組件、渲染屬性或函數(shù)子組件模式。這些模式完全沒有問題,它們可以解決真正的問題,但它們增加了顯著的認(rèn)知成本(比學(xué)習(xí)新語法的成本更高),因為它們都是相對復(fù)雜的模式。在 Vue 中,較大的 API 表面提供了很多傳遞數(shù)據(jù)的方法(如作用域槽,scoped slot),所以幾乎不需要用到那些復(fù)雜的模式。

當(dāng)然,這并不是說 Vue 就一定比 React 簡單,或者說 React 就特別令人困惑。但人們可能忽略了很重要的一點,就是在使用 React 時,很快就會用到這些復(fù)雜的模式,而 Vue 的作用域槽卻不會被經(jīng)常用到。造成這種情況的原因有很多,但重要的不在于它們能做什么,而在于在解決常見問題時,是不是經(jīng)常要用到復(fù)雜的解決方案。

React 有更大的生態(tài)圈和更好的工具,外面有更多面向 React 開發(fā)人員的工作崗位。Vue 更容易上手,并提供了強大的靈活性和 API,可以避免 React 的那些復(fù)雜模式。有些機制——比如向父組件發(fā)送事件而不是將回調(diào)作為屬性傳遞——可以讓代碼更清晰,但同時也是一個額外的抽象。

Vue 有更多與 Vue 緊密集成的核心庫,而 React 的核心庫較少,但一般性用途的庫較多,通常由社區(qū)開發(fā)。隨著生態(tài)系統(tǒng)的發(fā)展,最終會有大量的庫做大致相同的事情。大型生態(tài)圈最重要的作用在于,某人可能已經(jīng)解決了你正面臨的問題,所以,從這方面來說,擁有更大生態(tài)圈的 React 占據(jù)了優(yōu)勢,也是一個重要的考慮因素。

  總 結(jié)  

在很長一段時間內(nèi),React 和 Angular 都是框架游戲的主要參與者,而且每隔一小段時間就會出現(xiàn)一個新框架。它們試圖擠進來分一杯羹,但都沒有成功,除了 Vue。

React 是現(xiàn)在的領(lǐng)頭羊,無論是在行業(yè)炒作還是社區(qū)支持方面。React 可以輕松構(gòu)建復(fù)雜而直觀的 Web 和移動應(yīng)用程序,但這是有代價的——框架的復(fù)雜性和樣板代碼。小型項目相對直觀,但大型項目往往變得很復(fù)雜。React 引入了很多新的范式,這對學(xué)習(xí)曲線有一些負(fù)面影響。

Vue 更加精簡,是一個新穎的框架,而且非常簡單易學(xué),樣板代碼非常少,性能高,靈活且完整。現(xiàn)在很多 Web 應(yīng)用程序可以使用 Vue 構(gòu)建,并且速度比 React 快。Vue 很有趣,開發(fā)起來也很簡單。

最近,前端社區(qū)內(nèi)開始出現(xiàn)的關(guān)于 Vue 穩(wěn)定增長的良好氛圍,暗示著 Vue 很快就會變得像 React 一樣受歡迎。

 參考鏈接

https://medium.com/fundbox-engineering/react-vs-vue-vs-angular-163f1ae7be56

https://www.reddit.com/r/javascript/comments/8o781t/vuejs_or_react_which_you_would_chose_and_why/e01qn55

課程推薦


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
2017年最受歡迎的UI框架
前端框架的優(yōu)劣比較
?。。。。?分鐘為你詳解React、Angular、Vue三大前端技術(shù)
我們?yōu)槭裁葱枰猂eact?
Vue.js 2.0 和 React、Augular等其他框架的全方位對比
Angular vs React vs Vue 三個框架的比較
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服