web前端多端編程開發(fā)框架結(jié)構(gòu)?
隨著我們對web前端編程開發(fā)技術(shù)的掌握,越來越多的框架語言和架構(gòu)方式被我們所熟知。下面北京北大青鳥就一起來了解一下,web前端開發(fā)的一些常見框架結(jié)構(gòu)。
1.全包型
這類框架大的特點就是從底層的渲染引擎、布局引擎,到中層的DSL,再到上層的框架全部由自己開發(fā),代表框架是Qt和Flutter。這類框架優(yōu)點非常明顯:性能(的上限)高;各平臺渲染結(jié)果一致。缺點也非常明顯:需要完全重新學習DSL(QML/Dart),以及難以適配*特色的端:小程序。
這類框架是原始也是純正的的多端開發(fā)框架,由于底層到上層每個環(huán)節(jié)都掌握在自己手里,也能大可能地去保證開發(fā)和跨端體驗一致。但它們的框架研發(fā)成本巨大,渲染引擎、布局引擎、DSL、上層框架每個部分都需要大量人力開發(fā)維護。
2.Web技術(shù)型
這類框架把Web技術(shù)(,CSS)帶到移動開發(fā)中,自研布局引擎處理CSS,使用寫業(yè)務(wù)邏輯,使用流行的前端框架作為DSL,各端分別使用各自的原生組件渲染。代表框架是和Weex,這樣做的優(yōu)點有:
開發(fā)迅速;
復(fù)用前端生態(tài);
易于學習上手,不管前端后端移動端,多多少少都會一點JS、CSS。
缺點有:
1.交互復(fù)雜時難以寫出高性能的代碼,這類框架的設(shè)計就必然導(dǎo)致JS和Native之間需要通信,類似于手勢操作這樣頻繁地觸發(fā)通信就很可能使得UI無法在16ms內(nèi)及時繪制。有一些聲明式的組件可以避免這個問題,但聲明式的寫法很難滿足復(fù)雜交互的需求。
2.由于沒有渲染引擎,使用各端的原生組件渲染,相同代碼渲染的一致性沒有一種高。
3.編譯型
這類框架就是我們這篇文章的主角們:Taro、WePY、uni-app、mpvue、chameleon,它們的原理也都大同小異:先以作為基礎(chǔ)選定一個DSL框架,以這個DSL框架為標準在各端分別編譯為不同的代碼,各端分別有一個運行時框架或兼容組件庫保證代碼正確運行。
web前端主流框架主要有哪些
1、Bootstrap
Twitter出品的Bootstrap在業(yè)界是非常受歡迎的,以至于有很多前端框架都在其基礎(chǔ)上開發(fā),如我們熟悉的WeX5就是在Bootstrap源碼基礎(chǔ)上優(yōu)化而來的。我相信大多數(shù)接觸過前端開發(fā)的同學多少都了解過這個優(yōu)秀的前端框架。Bootstrap是基于HTML、CSS和的,它簡潔靈活,可以使得Web開發(fā)更加敏捷。
它提供優(yōu)雅的HTML和CSS規(guī)范,在jQuery的基礎(chǔ)上進行更加個性化和人性化的完善。兼容大部分jQuery插件,并包含了豐富的Web組件,如下拉菜單、按鈕式下拉菜單、導(dǎo)航條、按鈕組、分頁、縮略圖、進度條和媒體對象等。自帶了13個jQuery插件,其中有模式對話框、標簽頁、滾動條和彈出框等。
2、框架
框架總體來看要比Bootstrap略顯高大上一點,但他們倆的設(shè)計理念都是非常清楚的,Bootstrap有引導(dǎo)的意思,它嘗試處理你項目中的一切所需。有基礎(chǔ)、地基及支柱的意思,給你項目中強有力的創(chuàng)造與支持。相對于Bootstrap豐富的組件及插件,僅提供了有限的幾種元素,其目標是,即使你使用預(yù)定義的UI元素,也不應(yīng)該與大家的網(wǎng)站長得太像。
而Bootstrap則致力于提供所有定義好的元素,這樣使得看起來許多網(wǎng)站都差不多。默認不帶圖標集,它推薦使用開源字體圖標。與Bootstrap一樣,使用網(wǎng)格流式布局將網(wǎng)頁劃分為12列,針對不同的設(shè)備顯示不同的列數(shù),實現(xiàn)響應(yīng)式布局。但不支持舊版本瀏覽器。其他特性如有興趣可進一步了解。
3、Curl
Curl 是一個命令行工具,用于通過 HTTP(s)、FTP 和數(shù)十種其它協(xié)議進行請求。使用Curl可以進行文件下載、檢查響應(yīng)標題和自由訪問遠程數(shù)據(jù)。
在 Web 開發(fā)中,Curl 經(jīng)常和 RESTful API 一起使用,用于測試連接。
# Fetch the headers of a URL.curl -I 302 -Control: -Type: text/html; charset=UTF-8Referrer-Policy: no-: 258Date: Wed, 09 Aug 2021 11:24:01 GMT# Make a GET request to a remote API.curl is the number of days it takes Saturn to orbit the Sun.
Curl 命令可能比上述代碼更復(fù)雜。有許多選項用于控制 headers、Cookie、身份驗證等。了解更多,請閱讀 curl。
4、Tree
Tree 是一個小型的命令行實用程序,它將目錄中的文件以可視化的方式進行顯示。它采用遞歸運行的方式,遍歷每個級別的嵌套并繪制所有內(nèi)容的格式樹。這樣就能快速的瀏覽并查找需要的文件。
tree.├── css│ ├── bootstrap.css│ ├── bootstrap.min.css├── fonts│ ├── -halflings-regular.eot│ ├── -halflings-regular.svg│ ├── -halflings-regular.ttf│ ├── -halflings-regular.woff│ └── -halflings-regular.woff2└── js ├── bootstrap.js └── bootstrap.min.js
還可以使用簡單的 regEx 模式來過濾結(jié)果:
tree -P '*.min.*'.├── css│ ├── bootstrap.min.css├── fonts└── js └── bootstrap.min.js
5、Tmux
根據(jù)維基的解釋,Tmux 是一個終端復(fù)用器。通俗的說,它是一個能將多個終端連接到單個終端會話的工具。
Tmux允許用戶在終端中的程序之間切換,添加屏幕窗格,并將多個終端連接到同一個會話,使其保持同步。在遠程服務(wù)器上工作時,Tmux 特別有用,因為它允許用戶創(chuàng)建新的選項卡,而無需再次登錄。
6、du
du命令用于生成關(guān)于文件和目錄的空間使用情況的報告。du很容易使用,可以遞歸地運行,遍歷每個子目錄并返回每個文件的大小。
du 的常見用例是:當某個驅(qū)動器的空間不足,用戶不清楚每個存儲器的大小。使用此命令可以快速查看每個文件夾所占用的存儲空間,從而找到占用*空間的存儲器。
7、AUI
AUI是最近流行起來的,作者聲稱是專為APIClound設(shè)計的一套框架,解決了許多移動端開發(fā)實際中遇到的許多問題,是一個純CSS框架。使用容器+布局+模塊的構(gòu)建方式,JS輔助,更自由更靈活更易于擴展使用。遵循Google Material設(shè)計規(guī)范,完美適配各個機型。面向HTML5,使用CSS3實現(xiàn)動畫交互,輕量級高性能。AUI是使用MIT License授權(quán),你可以復(fù)制、出售。目前*版本2.0。
8、Amaze UI
這是稱為妹子UI的開源框架,據(jù)稱是**開源HTML5跨屏前端框架。妹子UI以移動優(yōu)先為理念,從小屏逐漸到大屏,實現(xiàn)響應(yīng)式網(wǎng)頁。Amaze UI包含20+個CSS組件、20+個JS組件,更有多個包含不同主題的Web組件。相比國外框架,妹子UI關(guān)注中文排版提供本地化支持。面向HTML5開發(fā),使用CSS3來實現(xiàn)動畫交互,輕量級高性能。
9、Frozen UI
Frozen UI是一款開源,簡單易用,輕量敏捷的移動端框架?;谑諵樣式規(guī)范,目前全面應(yīng)用于企鵝手Q增值業(yè)務(wù)中?;A(chǔ)樣式效果簡單色調(diào)清爽,社區(qū)活躍,組件自然不少。包括按鈕、列表、表單、通知、提示條、彈出框、選項卡等等常用組件。還包括一個FrozenJs的JS組件庫??梢栽谥髁鞯腁ndroid和IOS上應(yīng)用?;緲邮绞褂秒x線包的方式減少請求提供快速接入方案。當然,根據(jù)網(wǎng)友反映,也存在大大小小的bug。不過總體來說,還是值得一用的。奇怪的是,Github上顯示的*更新時間是一年前,難道已經(jīng)沒人維護了嗎?
# Running this will show the space usage of each folder in the current directory.# The -h option makes the report easier to read.# -s prevents and shows the total size of a folder.# The star wildcard (*) will run du on each file/folder in current directory.du -sh *1.2G Desktop4.0K .0K Music4.9M Public4.0K .9M Videos
還有一個相似的命令 df(Disk Free),使用df會返回有關(guān)可用磁盤空間的各種信息。
Web前端開發(fā)必備的開源框架有哪些
今天小編要跟大家分享的文章是關(guān)于Web前端開發(fā)必備的開源框架有哪些。大多數(shù)人想到Web開發(fā)時,通常會想到HTML或,往往忽略了CSS,根據(jù)Wikipedia的說法,CSS既是網(wǎng)頁中最重要也是最常被遺忘的部分之一,盡管它是萬維網(wǎng)的三大基礎(chǔ)技術(shù)之一。
今天就和大家分享9個流行的、強大的前端開源框架,幫助你輕松構(gòu)建漂亮的網(wǎng)站前端。下面來和小編一起看一看吧!
1、Bootstrap
Bootstrap無疑是*的CSS框架,它是最早的Web前端框架,由Twitter開發(fā)。Bootstrap還提供了許多示例來幫助你入門。
使用Bootstrap,你可以將不同的組件和布局組合在一起,從而創(chuàng)建有趣的頁面設(shè)計。它還提供了大量詳細的文檔。目前在Github上已經(jīng)有1100多個貢獻者,19000多個提交。(Github地址:
前端開發(fā)是創(chuàng)建web頁面或app等前端界面呈現(xiàn)給用戶的過程。通過html、css、js以及衍生出來的各種技術(shù)、框架、解決方案來實現(xiàn)互聯(lián)網(wǎng)產(chǎn)品的用戶交互界面。
Web前端框架有:Bootstrap 框架、React 框架、Vue 框架、Angular 框架、 框架、 框架。
1、Bootstrap 框架
Bootstrap 是當今可用的前端框架中*的,它具有直觀,時尚的界面而且功能強大可以更快更輕松地實現(xiàn) web 開發(fā)而且不需要捆綁。附件就可以使用許多第三方插件,大多數(shù)瀏覽器都支持它,而且它提供了比其他前端框架更多的組合資源。
2、React 框架
React 框架引入了許多自定義的(在創(chuàng)建時)前端 Web 開發(fā)的方法。要使用 React,首先需要掌握組件的體系結(jié)構(gòu),JSX 和單向數(shù)據(jù)流等,React 框架的出現(xiàn)促使開發(fā)了大量額外工具用來實現(xiàn)高度靈活性。雖然靈活性是其主要優(yōu)勢,但 React 因其靈活性也存在一些問題。比如在使用 React 時會面臨選擇的問題,而且它沒有可靠的開發(fā)工作流程。我們必須使用 React 構(gòu)建自己的工作流程。這比使用其他 JS 框架更困難,因為構(gòu)建到框架中需要大量的開發(fā)工具。
3、Vue 框架
Vue 是一套用于構(gòu)建用戶界面的漸進式框架。與其它大型框架不同的是,Vue 被設(shè)計為可以自底向上逐層應(yīng)用。Vue 的核心庫只關(guān)注視圖層,不僅易于上手,還便于與第三方庫或既有項目整合。另一方面,當與現(xiàn)代化的工具鏈以及各種支持類庫結(jié)合使用時,Vue 也完全能夠為復(fù)雜的單頁應(yīng)用提供驅(qū)動。
4、Angular 框架
Angular.js 通常被稱為 MVW(模型 – 視圖 – 隨意)框架,其中包括:快速代碼生成,輕松測試任何應(yīng)用程序部分和雙向數(shù)據(jù)綁定(后端的更改會立即反映在 UI 上)。自發(fā)布以來,它成為開發(fā)的最常用的 JS 框架。對于基于企業(yè)的應(yīng)用程序或具有高標準代碼可讀性的嚴格編程環(huán)境,Angular-s 都是更好的選擇。
5、 框架
是由網(wǎng)頁設(shè)計公司 Zurb 創(chuàng)建的,是一個非常先進的企業(yè)級前端框架,非常適合開發(fā)靈活,響應(yīng)迅速的網(wǎng)站。但是使用它也相當復(fù)雜,所以不適合剛?cè)腴T的學習者,這個功能豐富的框架支持 GPU 加速,可實現(xiàn)流暢,閃電般快速的動畫,F(xiàn)astclick.js 可在移動設(shè)備上快速渲染。它在 Sass 預(yù)處理器上運行,并包含 開發(fā)的數(shù)據(jù)交換屬性,該屬性允許您為移動設(shè)備加載輕量級 HTML 部分,為較大屏幕加載“較重”HTML 部分。
6、 框架
是由微軟開發(fā)的自由和開源的編程語言, 類型的超集,它可以編譯成純 。 可以在任何瀏覽器、任何計算機和任何操作系統(tǒng)上運行,并且是開源的。
2021年的前端框架選擇 Angular vs React vs Vue
每個前端開發(fā)人員都聽說過三個用于構(gòu)建 Web 應(yīng)用程序的框架:React、Vue.js和Angular。
React 是一個 UI 庫,Angular 是一個成熟的前端框架,而 Vue.js 是一個漸進式框架。
它們幾乎可以互換使用來構(gòu)建前端應(yīng)用程序,但它們并非 * 相同,因此比較它們并了解它們的差異是有意義的。
每個框架都是基于組件的,并允許快速創(chuàng)建 UI 功能。
然而,它們都有不同的結(jié)構(gòu)和架構(gòu)——所以首先,我們將研究它們的架構(gòu)差異以了解它們背 后的哲學。
React 不強制執(zhí)行特定的項目結(jié)構(gòu),正如您從下面的官方“Hello World”示例中看到的那樣,您只需幾行代碼即可開始使用 React。
React 可以用作 UI 庫來渲染元素,而無需強制執(zhí)行特定的項目結(jié)構(gòu),這就是它不是嚴格意義上的框架的原因。
React Elements是 React 應(yīng)用程序的最小構(gòu)建塊。它們比 DOM 元素更強大,因為 React DOM 確保在發(fā)生變化時有效地更新它們。
組件是更大的構(gòu)建塊,定義了在整個應(yīng)用程序中使用的獨立且可重用的部分。它們接受稱為 props 的輸入并生成元素,然后顯示給用戶。
React 基于 ,但它主要與JSX ( XML)結(jié)合,這是一種語法擴展,允許您創(chuàng)建同時包含 HTML 和 的元素。
您使用 JSX 創(chuàng)建的任何內(nèi)容也可以使用 React API 創(chuàng)建,但大多數(shù)開發(fā)人員更喜歡 JSX,因為它更直觀。
Vue.js 核心庫只關(guān)注視圖層。之所以稱為漸進式框架,是因為您可以使用官方和第三方包(例如Vue Router或Vuex )擴展其功能,將其轉(zhuǎn)變?yōu)閷嶋H框架。
雖然 Vue 與 MVVM(Model-View-ViewModel)模式?jīng)]有嚴格關(guān)聯(lián),但它的設(shè)計部分受到了它的啟發(fā)。使用 Vue,您將主要在 ViewModel 層上工作,以確保以允許框架呈現(xiàn)*視圖的方式處理應(yīng)用程序數(shù)據(jù)。
Vue 的模板語法讓您可以創(chuàng)建 View 組件,并將熟悉的 HTML 與特殊指令和功能相結(jié)合。這種模板語法是*,即使原始 和 JSX 也受支持。
Vue 中的組件很小,是自包含的,并且可以在整個應(yīng)用程序中重復(fù)使用。帶有擴展名的單文件組件(SFC).vue包含 HTML、CSS 和 ,因此所有相關(guān)代碼都位于一個文件中。
SFC 是在 Vue.js 項目中組織代碼的推薦方式,尤其是大型項目。需要使用 Webpack 或 等工具將 SFC 轉(zhuǎn)換為可用的 代碼。
在本文中,我討論的是 Angular 2,而不是現(xiàn)在稱為 AngularJS 的框架的*個版本。
AngularJS,原始框架,是一個MVC(模型-視圖-控制器)框架。但是在Angular 2 中,與 MV*-patterns 沒有嚴格的關(guān)聯(lián),因為它也是基于組件的。
Angular 中的項目被組織成模塊、組件和服務(wù)。每個 Angular 應(yīng)用程序至少有一個根組件和一個根模塊。
Angular 中的每個組件都包含一個模板、一個定義應(yīng)用程序邏輯的類和元數(shù)據(jù)(裝飾器)。組件的元數(shù)據(jù)告訴 Angular 在哪里可以找到創(chuàng)建和呈現(xiàn)其視圖所需的構(gòu)建塊。
Angular 模板是用 HTML 編寫的,但也可以包含帶有特殊指令的Angular 模板語法,以輸出反應(yīng)性數(shù)據(jù)和呈現(xiàn)多個元素等。
組件使用 Angular 中的服務(wù)來委托業(yè)務(wù)邏輯任務(wù),例如獲取數(shù)據(jù)或驗證輸入。它們是 Angular 應(yīng)用程序的獨特部分。雖然 Angular 不強制使用它們,但強烈建議將應(yīng)用程序構(gòu)建為一組可以重用的不同服務(wù)。
Angular 內(nèi)置于 中,因此建議使用它以獲得最無縫的體驗,但也支持純 。
React 是*的 項目之一,在 GitHub 上擁有 16 萬顆星。它由 Facebook 開發(fā)和維護,并在他們的許多項目內(nèi)部使用。此外,根據(jù)BuiltWith的使用統(tǒng)計數(shù)據(jù),它為超過 200 萬個網(wǎng)站提供支持。
在三個框架中,Vue在 GitHub上的 star 數(shù)最多,有 176k。該項目由前 Google 員工 Evan You 開發(fā)和領(lǐng)導(dǎo)。據(jù)BuiltWith 稱,這是開源社區(qū)中一個非常強大的獨立項目,被超過 100 萬個網(wǎng)站使用。
Angular 是由 Google 開發(fā)的,但令人驚訝的是它并沒有用于他們的一些旗艦產(chǎn)品,例如搜索或 Youtube。它經(jīng)常用于企業(yè)項目,并基于BuiltWith的數(shù)據(jù)為超過 97,000 個網(wǎng)站提供支持。
它是三個框架中星數(shù)最少的,在 GitHub 上有 68k 星。然而,當從 Angular 1 切換到 Angular 2 時,他們創(chuàng)建了一個全新的代碼庫,而不是繼續(xù)AngularJS項目,該項目也有 59k 星。
在開發(fā)應(yīng)用程序時,開源包可以為您節(jié)省寶貴的時間。不僅如此,它們通常比定制組件和封裝更好,因為它們經(jīng)過了實戰(zhàn)測試。
查看可幫助您更輕松地創(chuàng)建新功能的現(xiàn)成組件、主題和其他工具的可用性非常重要。
許多前端應(yīng)用程序依賴全局狀態(tài)管理來存儲信息,例如誰登錄和其他用戶設(shè)置。
*的 狀態(tài)管理項目是Redux。大多數(shù)開發(fā)人員使用Redux的官方 React 綁定,這些綁定由 Redux 團隊維護。
由于 React 的流行,查找輸入組件和現(xiàn)成的元素非常容易。它們都只是在 Google 或 GitHub 上搜索即可。
React 生態(tài)系統(tǒng)還包括React Native,它允許您從用 React 編寫的單個代碼庫構(gòu)建原生 iOS 和 Android 應(yīng)用程序。因此,React 也可以成為使用 Web 技術(shù)構(gòu)建移動應(yīng)用程序的絕佳選擇。
React 是 MERN 堆棧的一部分,其中包含 MongoDB、ExpressJS、React 和 NodeJS。這種組合的偉大之處在于,單一語言————為整個應(yīng)用程序提供動力。
盡管 Redux 可以在 Vue 中使用,但沒有官方綁定。但這不應(yīng)該讓您擔心,因為Vuex是專門為 Vue 應(yīng)用程序制作的官方狀態(tài)管理庫。除了與 Vue 很好地集成之外,使用 Vue 的開發(fā)人員工具進行調(diào)試也很容易。
在 Vue 的早期,很難找到現(xiàn)成的組件。隨著社區(qū)的發(fā)展,您可以使用各種輸入組件和高級元素來加快開發(fā)速度。
對于移動應(yīng)用程序開發(fā),有一個名為Weex 的新興項目。Weex 由阿里巴巴開發(fā)和使用,但不如 React Native 成熟和強大。更重要的是,由于該項目在*開發(fā)和使用較多,因此很難找到英文文檔和解決問題的方法。
Vue 與 Laravel 集成得很好,這就是為什么它們經(jīng)常一起使用。Laravel 提供完整的 和 CSS 腳手架,以支持在新項目中使用 Vue。
對于 Angular 中的狀態(tài)管理,您可以使用NgRx項目。它的靈感來自 Redux,但它是專門為 Angular 創(chuàng)建的。
與 Vue 和 React 的情況一樣,您可以將許多現(xiàn)成的組件導(dǎo)入到您的項目中。與 Angular 略有不同的是,Angular Material項目中有許多官方組件。這是 Google 的一個官方項目,為 Angular 應(yīng)用程序提供 Material Design 組件。
您可以使用在 Angular 中構(gòu)建跨平臺移動應(yīng)用程序。它也支持 Vue,但 Angular 支持更成熟。
Angular 是著名的 MEAN 堆棧的一部分,它將 Angular 與 MongoDB、ExpressJS 和 NodeJS 相結(jié)合。與 MERN 堆棧類似,它的前端和后端都完全依賴 。
Angular、React 和 Vue 都可用于開發(fā)漸進式 Web 應(yīng)用程序,也稱為 PWA。
PWA 不是移動應(yīng)用程序,而是 Web 應(yīng)用程序,智能手機用戶可以將其添加為主屏幕的快捷方式,并提供類似于原生移動應(yīng)用程序的外觀和感覺。
您還可以為每個框架找到高級模板和預(yù)制應(yīng)用程序,但 Angular 和 React 比 Vue 提供更多高級選項。
在選擇框架或庫時,您還需要考慮性能。
在許多情況下,您不必擔心性能,尤其是在構(gòu)建小型項目時。然而,項目的范圍和復(fù)雜性越大,性能就會(并且將會)成為一個問題。
重要的是要注意,在 Web 性能方面,開發(fā)質(zhì)量和遵循*實踐比框架的選擇更重要。
但由于存在一些性能指標和差異,我將研究它們并解釋每個指標如何影響您的開發(fā)工作。
JS 框架基準測試的結(jié)果表明,它們在大多數(shù)基準測試中都表現(xiàn)得相當好,例如在表中創(chuàng)建或附加行。
正如你在上面看到的,Vue 在選擇行時比 Angular 和 React 慢得多。另一方面,Angular 和 React 在交換行方面效率不高。
這些是渲染基準中*的實質(zhì)性差異 - 在大多數(shù)情況下,不會產(chǎn)生明顯的結(jié)果。由于選擇行是比交換行更常見的功能,我想說這個基準測試將 Vue 排在第三位,僅次于 Angular 和 React 并列*。
在內(nèi)存和啟動時間方面,React 和 Vue 得分很好,但 Angular 稍慢。Angular 啟動一個基本腳本可能需要 150 毫秒,并且需要更多內(nèi)存才能運行。
谷歌 Chrome 實驗室的Perf Track顯示了來自數(shù)千個網(wǎng)站的生產(chǎn)數(shù)據(jù)。這些統(tǒng)計數(shù)據(jù)受許多其他因素的影響,而不僅僅是選擇的框架,讓我們看看數(shù)字。
與 Angular 相比,Vue 和 React 網(wǎng)站在這個指標上的排名更高,Angular 需要更多時間來啟動并向用戶呈現(xiàn)內(nèi)容。
在渲染完整頁面的三個框架中,Angular 也是最慢的,只有 27% 的 Angular 網(wǎng)站得分在可接受的范圍內(nèi)。
對于所有三個框架,超過 80% 的網(wǎng)站都在*次輸入延遲的可接受范圍內(nèi),這顯示了用戶可以與頁面交互所需的時間。
迄今為止,最輕量級的應(yīng)用程序是使用 Vue 開發(fā)的應(yīng)用程序,68% 的 Vue 應(yīng)用程序加載的 不到 1MB。另一方面,Angular 和 React 應(yīng)用程序往往具有更大的代碼大小。
您可以從這些數(shù)字中看到趨勢,但您不應(yīng)該太快得出結(jié)論。例如,對于*一張圖,可以解釋為 Vue 用于開發(fā)更輕量級的應(yīng)用程序,而 Angular 用于更大的項目。
統(tǒng)計數(shù)據(jù)可以幫助指導(dǎo)您做出正確的決定,但您不能使用它們來證明一個框架比另一個更快或更好。
對于更高級的應(yīng)用程序,使用的前端框架應(yīng)該能夠執(zhí)行一些提高性能并且可以更好地擴展的任務(wù)。
兩項關(guān)鍵技術(shù)是服務(wù)器端渲染 (SSR) 和虛擬化。
React 支持使用官方包進行服務(wù)器端渲染。對于虛擬化,您可以使用名為React 的流行第三方工具。
Vue 中也支持服務(wù)器端渲染以及官方的SSR 包。此外,您還可以使用基于 Vue 構(gòu)建并支持 SSR的Nuxt.js框架。
不幸的是,Vue 中的虛擬化選項并不是那么強大。在我看來,Vue Virtual Scroll List是虛擬滾動的*解決方案,但它有點問題,不如 React 和 Angular 的選項穩(wěn)定。
Angular 擁有SSR的官方Angular Universal包,以及用于虛擬滾動和高效渲染大型列表的官方組件。
學習這些框架有多容易?
要回答這個問題,我們需要查看每個框架的復(fù)雜性及其引入的概念。
在最基本的用例中,React 是三個框架中最不復(fù)雜的。那是因為你只需要導(dǎo)入庫,然后你就可以用幾行代碼開始編寫你的 React 應(yīng)用程序。
但是除了 Hello World 示例之外,大多數(shù) React 應(yīng)用程序都是基于組件的,而不僅僅是在頁面上呈現(xiàn)一些元素。
一些開發(fā)人員對 React 感到奇怪或困難的一件事是,學習 JSX 是一條單行道。您也可以使用原始 ,但由于大多數(shù) React 開發(fā)人員使用 JSX,學習它幾乎是不可避免的。
這是使 React 的學習曲線變得更陡峭的主要因素,但除此之外,對于了解 并理解 Web 開發(fā)概念的開發(fā)人員來說,它是一個易于學習的庫。
Vue 的設(shè)置比 React 稍微復(fù)雜一些。你可以將它用作一個庫來定義你可以在整個 HTML 中使用的組件——但與 React 類似,這不是大多數(shù)項目的構(gòu)建方式。
大多數(shù) Vue 項目都有一個命名的根組件App.vue和一些用于顯示各種內(nèi)容的子組件。
說到語法,你*需要學習的新東西就是 Vue 的模板語法,如果你了解 HTML,這很容易掌握?;镜闹噶?,如v-if和v-for有條件的渲染和列表的渲染,很容易理解即使是初學者。
此外,Vue 的單文件組件將所有前端代碼保存在一個地方,便于組織新項目。
在我看來,Vue 是最容易學習的,因為它的簡單和直觀的語法。
Angular 擁有三者中最復(fù)雜的項目結(jié)構(gòu),而且由于它是一個成熟的前端框架,因此它依賴的概念更多。
除了組件,Angular 還支持模塊和服務(wù)。它希望您以特定的方式編寫和設(shè)計代碼庫,從而使您的項目在擴展時更易于維護。
至于語法,由于 Angular 最適合與 配合使用,因此在構(gòu)建 Angular 項目時了解 非常重要。
與 Vue 一樣,您還必須熟悉類似 HTML 的語法,以便您可以開始使用 Angular 編寫新的 UI 功能。
在我看來,Angular 對于普通開發(fā)者來說是最難學的,因為它更復(fù)雜并且依賴于 。
許多開源項目和框架逐漸被遺忘并無人維護。您是否應(yīng)該擔心我們在這里討論的任何框架?
盡管我們無法完全預(yù)測會發(fā)生什么,但正在進行的開發(fā)工作是這些項目 健康 狀況的良好指標。人氣和增長也是預(yù)測項目壽命的重要指標,所以讓我們來看看每個框架。
React v17.0已經(jīng)發(fā)布,但令人驚訝的是,它沒有為開發(fā)人員提供任何新功能。
主要的變化是這個新版本可以更容易地升級 React 本身。您可以將 React 的某些部分從舊版本升級到新版本,而無需升級整個項目。
如果您的應(yīng)用程序依賴于隨新版本更改或棄用的功能,您可以保留舊版本以保持此功能有效。此更新使 React 成為一個很好的長期選擇,因為它可以更輕松地與新版本保持同步。
React 的每周 npm 下載量自去年以來增長了 44% 。從絕對數(shù)量來看,它仍然是三個項目中下載量*的。
Vue 3 已于2021 年 9 月發(fā)布,它解決了 Vue 2 在大型項目中存在的許多嚴重問題。它引入了受React Hooks啟發(fā)的 API,可以更輕松地跨組件重用邏輯。
整個項目用 重寫,提高了新 Vue 項目對 的支持,同時也使項目更易于維護。
Vue 3 是一個急需的升級,使 Vue 更適合大型項目。
Vue 的每周下載量自去年以來增長了 87%,使 Vue 成為相對而言增長最快的框架。如果 Vue 能夠保持這種增長速度,那么它肯定會很快超過 Angular。
Angular 最近推出了Ivy 編譯器。它減少了構(gòu)建時間,優(yōu)化了資產(chǎn),允許更快的測試,并總體上改善了開發(fā)人員的體驗。
Angular 團隊每年發(fā)布兩次重大更新,其中可能包含新功能,或者只是讓框架跟上新瀏覽器版本的速度。
自去年以來,Angular 的每周下載量增長了約 50% ,因此它仍然是一個受歡迎的項目。
Angular、React 和 Vue 都處于非?;钴S的開發(fā)階段。他們定期發(fā)布新版本并維護現(xiàn)有版本。由于在每種情況下當前的支持水平都很高,因此您可以安全地使用這些框架中的任何一個。
需要注意的是,Angular 的增長沒有以前那么快,而 Vue—— 盡管它是最近開始的——似乎增長了很多。
如前所述,我們無法預(yù)測哪些框架會長期保持相關(guān)性,但每個項目背后都有一個偉大的社區(qū),并且在不斷發(fā)展。
我這篇文章的目標是解釋架構(gòu)差異,分解每個框架的優(yōu)點和缺點,并在適用的地方進行比較。
在進入一個新框架之前,有幾件事情需要考慮。
首先,在選擇新技術(shù)時,您團隊的經(jīng)驗可能是一個決定性因素。
同樣,您必須考慮您所在地區(qū)可用的人才,以便您可以為您的項目聘請開發(fā)人員。
*,當涉及到項目本身時,復(fù)雜性和范圍也會影響您對框架的選擇。
通過考慮所有關(guān)鍵差異,我希望您可以決定哪個是最適合您的目標和需求的前端框架。
(本文由聞數(shù)起舞翻譯自Aris Pattakos的文章《Angular vs React vs Vue 2021》,轉(zhuǎn)載請注明出處,原文鏈接: 特點很多,、JSX、Diff算法等,支持ES6語法,采用函數(shù)式編程,門檻稍高,但也更靈活,能讓開發(fā)具有更多可能性。
Vue
Vue作為*推出的框架(2014年),借鑒了前輩angular和react的特點(如、雙向數(shù)據(jù)綁定、diff算法、響應(yīng)式屬性、組件化開發(fā)等)并做了相關(guān)優(yōu)化,使其使用起來更加方便,更容易上手,比較少適合初學者。網(wǎng)上有很多人說Vue不適合做大型項目,純屬扯淡,Vue在這方面已經(jīng)優(yōu)化得很好,當然,大量的響應(yīng)式屬性(監(jiān)聽屬性)也許會用一定的性能損耗,但在硬件、網(wǎng)絡(luò)大力發(fā)展的今天,這些細微的性能差異幾乎感覺不到。