【51CTO.com快譯】
作者丨Ashika Elza
譯者丨布加迪
策劃丨云昭
應(yīng)該使用哪種 JavaScript 框架:React 還是 Vue.js?新的 WordPress 編輯器基于 React,而 Vue.js 是 Laravel 社區(qū)的流行框架。
開發(fā)界兩種最流行的前端 JavaScript 框架是 React.js 和 Vue.js。React 是一種聲明式編程語(yǔ)言,通過(guò)虛擬 DOM 與 HTML 文檔進(jìn)行交互。
React 和 Vue 都為軟件開發(fā)人員提供了一種實(shí)用的方法來(lái)開發(fā)各種在線應(yīng)用程序,但各自有一套最佳實(shí)踐,適合不同的業(yè)務(wù)需求。
Vue.js 簡(jiǎn)介
Vue.js 是一種開源 JavaScript 前端框架。單頁(yè)應(yīng)用程序和用戶界面是使用模型 - 視圖 - 視圖 - 模型架構(gòu)構(gòu)建的。
Evan You 開發(fā)了 Vue.js,它使用“高解耦”,允許 Vue 開發(fā)人員逐步創(chuàng)建用戶界面。
Vue.js 是一種用于創(chuàng)建用戶界面的復(fù)雜框架。
與其他整體式框架不同,Vue JavaScript 是從頭開始構(gòu)建的,逐步得到采用。
Vue 框架的主要庫(kù)完全專注于視圖層,易于學(xué)習(xí),與各種庫(kù)和現(xiàn)有項(xiàng)目集成。
與配套庫(kù)和現(xiàn)代工具結(jié)合使用時(shí),Vue js 還完全能夠支持優(yōu)雅的單頁(yè)應(yīng)用程序。
Vue.js 的功能特點(diǎn)
1、組件
Vue.js 組件是該框架最重要的功能之一。它們用于封裝可重用的代碼,并補(bǔ)充基本的 HTML 組件。在 Vue.js 應(yīng)用程序中,您可以構(gòu)建可重用的自定義元素,然后可以在 HTML 中重用。
2、模板
為了將顯示的 DOM 連接到 Vue 實(shí)例數(shù)據(jù),Vue.js 包含基于 HTML 的模板。所有 Vue 模板都是有效的 HTML,可以被瀏覽器和符合標(biāo)準(zhǔn)的 HTML 解析器解析。Vue.js 將模板編譯成 Virtual DOM 渲染函數(shù)。Vue 在更新瀏覽器之前在虛擬 DOM 內(nèi)存中渲染組件。如果您改變應(yīng)用程序的狀態(tài),Vue 可以找到需要重新渲染的最少數(shù)量的組件和最少數(shù)量的 DOM 操作。
3、反應(yīng)性
Vue 具有反應(yīng)性框架,可通過(guò)使用簡(jiǎn)單的 JavaScript 對(duì)象來(lái)優(yōu)化重新渲染。在此過(guò)程中,每個(gè)組件都跟蹤其反應(yīng)性依賴項(xiàng),因此系統(tǒng)確切地知道何時(shí)重新渲染哪些組件。
4、路由
Vue 使用官方路由器通過(guò) URL 路由用戶。
單頁(yè)應(yīng)用程序(SPA)無(wú)法將連接分區(qū)到單個(gè)網(wǎng)頁(yè)內(nèi)的特定子頁(yè)面,這是最常見的缺陷。
由于 SPA 僅向用戶提供來(lái)自服務(wù)器的面向 URL 的單個(gè)響應(yīng),因此將特定的屏幕加入到書簽或?qū)㈡溄臃峙浣o特定區(qū)域就算不可能,也很困難。
為了解決這個(gè)問(wèn)題,一些客戶端路由器使用“hashbang”(#!)來(lái)限制動(dòng)態(tài) URL。
5、轉(zhuǎn)換
從 DOM 中更新、插入或刪除對(duì)象時(shí),Vue 提供了多種技術(shù)來(lái)運(yùn)用轉(zhuǎn)換效果。這包括以下工具:
- 使用 JavaScript 在轉(zhuǎn)換 hook 期間立即更改 DOM。
- 同化 Velocity.js 第三方 JavaScript 動(dòng)畫庫(kù)。
- 機(jī)械地運(yùn)用 CSS 動(dòng)畫和轉(zhuǎn)換類。
- 應(yīng)使用第三方 CSS 動(dòng)畫庫(kù) Animate.css。
React 簡(jiǎn)介
React 是一種 JavaScript 庫(kù),可用于創(chuàng)建 Web 應(yīng)用程序界面。通過(guò)重用組件,React 或者 ReactJS 幫助為其產(chǎn)品開發(fā)更好的框架。ReactJS 由兩部分組成:HTML 代碼和 HTML 文檔。HTML 代碼用于創(chuàng)建用戶視圖層,又叫用戶界面(UI)。所有組件都包含在 HTML 頁(yè)面上。
React 由 Facebook 軟件工程師 Jordan Walke 開發(fā)。2011 年,React 誕生。另一方面,React 在設(shè)計(jì)時(shí)考慮到 Facebook。React 庫(kù)在創(chuàng)建網(wǎng)站和應(yīng)用程序時(shí)派得上用場(chǎng)。Whatsapp 和 instagram 是最有名的兩家采用 React 的公司。因而,React 在 2013 年向公眾發(fā)布。
React 的功能特點(diǎn)
1、簡(jiǎn)單
React 理解和實(shí)施起來(lái)簡(jiǎn)單得多。因此,任何使用過(guò) JavaScript 的開發(fā)人員都可以快速上手 React,開始開發(fā) Web 應(yīng)用程序。
2、可重用元素
代碼的可重用性是 React 最重要的功能之一??芍赜眯允归_發(fā)人員的工作變得輕松。程序員不需要為相關(guān)的應(yīng)用程序組件構(gòu)建單獨(dú)的腳本。因此,可重用代碼。因而,代碼可重用性有助于降低制造成本。
3、簡(jiǎn)易的代碼測(cè)試
測(cè)試是 React 的另一個(gè)重要方面。它隨帶的原生工具使測(cè)試和調(diào)試變得輕而易舉。ReactJS 基于組件的架構(gòu)減少了所需的調(diào)試工作量。更改應(yīng)用程序的一個(gè)組件并不影響其他組件。因此,React 在測(cè)試和故障排除方面節(jié)省了大量時(shí)間。
4、對(duì) SEO 友好
使用 ReactJS 加快了網(wǎng)頁(yè)的創(chuàng)建。React 應(yīng)用程序加載頁(yè)面的速度比其他類型的應(yīng)用程序快得多。因此,React 頁(yè)面的跳出率很低。此外,React 的組件(比如 React Helmet 和 React Router)有助于開發(fā)對(duì) SEO 友好的應(yīng)用程序。
Vue 與 React
Vue |
React |
開源框架 |
庫(kù) |
Vue 由 Evan You 開發(fā) |
React 由 Facebook 開發(fā)和支持 |
min+gzip 后,Vue 大小約為 20 KB |
React 大小約為 100 KB |
Vue 使用與 React 相似的虛擬 DOM 和操作型原則。然而說(shuō)到組件更新和創(chuàng)建,Vue 更快速。 |
React 采用虛擬 DOM,這是不依賴 Web 瀏覽器的對(duì)象模型。該框架機(jī)械地呈現(xiàn) HTML 頁(yè)面。 |
React js可用于構(gòu)建基于社區(qū)的平臺(tái),比如應(yīng)用市場(chǎng)和論壇。 |
結(jié)語(yǔ)
React 和 Vue 都是創(chuàng)建交互式用戶界面的優(yōu)秀技術(shù)。您在決定哪一個(gè)最適合項(xiàng)目時(shí),要考慮諸多變化因素,包括貴公司的需求、特定用例、開發(fā)人員可用性、環(huán)境、時(shí)間表和預(yù)算。
Vue.js 似乎采用了 React 中引入的許多概念,并加以完善和改進(jìn)。一些人認(rèn)為,Vue.js 學(xué)起來(lái)較易入手。它在 Laravel 社區(qū)似乎大受歡迎,我認(rèn)為 Vue 3 的發(fā)布對(duì)于 Vue.js 愛好者來(lái)說(shuō)將是重大事件。我認(rèn)為,Vue.js 有強(qiáng)大的社區(qū),但與 React 沒(méi)法相比。
原文鏈接:
https://www.datasciencecentral.com/profiles/blogs/react-vs-vue-which-is-the-best-framework-in-2022
會(huì)議推薦
近年來(lái),“大前端”領(lǐng)域不斷拓展和深化。為了更好地適應(yīng)新的產(chǎn)品形態(tài)和用戶需求,大量新的技術(shù)理念、技術(shù)標(biāo)準(zhǔn)、技術(shù)工具不斷涌現(xiàn)。這些新技術(shù)讓開發(fā)者面臨前所未有的機(jī)遇和挑戰(zhàn)。2022 年 4 月 9 日至 10 日的 WOT 全球技術(shù)創(chuàng)新大會(huì)“大前端新技術(shù)實(shí)踐”專題中,多位大前端領(lǐng)域知名技術(shù)專家將聚焦大前端前沿技術(shù),分享他們對(duì)新技術(shù)的探索和落地實(shí)踐經(jīng)驗(yàn)。
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】