React,Angular和Vue的15种绝佳替代品
“音樂之聲”可能會說:“讓我們從頭開始,這是一個很好的起點。” 但是幾乎每個開發(fā)人員都知道這是一個愚蠢的計劃。 正確的起點是由一支偉大的開源開發(fā)人員團隊建立的堅實基礎(chǔ)。 克隆他們的辛苦工作,然后添加足夠的代碼以使其成為您自己的代碼。 無需重復(fù)每個人以前所做的事情。
這是一個簡單的計劃-只要您選擇即可。 不幸的是,選擇該基礎(chǔ)幾乎像剛開始一樣困難。 Web框架世界是一個非常活躍的開發(fā)領(lǐng)域,可能會有許多優(yōu)秀的開源項目對您的項目來說是一個很好的開端。
更糟糕的是,創(chuàng)建這些不同項目的不同團隊在不同的道路上出發(fā),因為他們與其他選擇在理念上存在嚴重分歧。 他們研究了其他框架,并決定可以做得更好。 換句話說,他們這樣做是有原因的,您可能同意也可能不同意。
下面列出的好地方列表有意讓市場領(lǐng)導(dǎo)者React,Angular和Vue離開,只是為了使事情變得更簡單。 這并不意味著三巨頭都不好。 它們可能仍然是您的正確選擇。 只是他們經(jīng)常被談?wù)?#xff0c;而這些討論卻忽略了其他一些不錯的選擇。
有很多充分的理由選擇最受歡迎的。 您穿鞋的許多人環(huán)顧四周,其中許多人有充分的理由選擇React , Angular或Vue 。 但是那是那時。 同時,一些聰明的人已經(jīng)創(chuàng)建了更新的框架,這些框架更快,更簡單,更強大,或者是任何最高級的框架。
在下面的大多數(shù)情況下,這些團隊通過重新構(gòu)想框架的本質(zhì)來創(chuàng)建有趣而強大的功能。 這是一種花哨的說法,他們最終刪除了一個功能,從而使框架更加高效,從而減少了所需的內(nèi)存量,加快了啟動時間,或者通常使它更加靈活。 或者在某些情況下,他們添加了新的想法,這些想法將來可能會成為標準。
如果您有時間進行投資,這里列出了其他一些有趣的選擇。 它們不一定適合某些人,也不是所有人的最佳選擇,但對于您來說可能是更好的選擇。 您的工作(如果選擇接受)是為Web應(yīng)用程序創(chuàng)建一個完整的描述,寫下有關(guān)不同用例的相對牢固的描述,然后牢記這些工具進行評估。
也許您喜歡一種設(shè)計代碼的特殊方法。 也許您的應(yīng)用程序不需要胖的,更流行的框架中的某些功能。 有許多其他理由可以選擇其中一條途徑進行投資。 您可能會發(fā)現(xiàn)其中之一為您的應(yīng)用程序創(chuàng)造了奇跡。
小DOM
如果您喜歡虛擬DOM的想法,但是您不希望采用React,Vue或其他大牌框架的人們的思維方式帶來的所有限制,那么Petit DOM是解決之道。 您將獲得少量的代碼,這些代碼將使您可以操縱標簽的虛擬集合,然后將其遷移到真實的DOM。 有關(guān)組件結(jié)構(gòu)和渲染的所有其他事情都由您決定。 如果您的組件很簡單,或者要創(chuàng)建僅由您自己創(chuàng)建的一些超級復(fù)雜的呈現(xiàn)層次結(jié)構(gòu),那么這可能是您的基礎(chǔ),因為它所提供的全部只是用于虛擬化DOM的工具。
剩余
虛擬DOM可能并不適合所有人。 它占用空間,因此,如果您的操作不太復(fù)雜,則最好將指令直接傳遞到官方DOM。 剩余庫就是這樣做的。 它采用了每個人都喜歡的標記JSX,并將其編譯為一些將操縱真實DOM的代碼。 正如他們在廣告業(yè)務(wù)中所說的那樣,它削減了中間商。 沒有差別。 沒有秘密的額外層。 只是對真實DOM的純粹操縱。 如果您的代碼簡單而直接,足以對DOM做幾件事,那么為什么還要打擾虛擬的注意力呢?
RE:DOM
對于那些不想在虛擬Dom中投入任何內(nèi)存的人來說,另一個選擇是一個名為RE:DOM的小型庫(2KB)。 RE:DOM包含一些基本例程,使您可以通過一些簡單JavaScript調(diào)用來創(chuàng)建所有標記和組件。 語法更接近CSS,因此您只需幾次擊鍵就可以指定帶有ID和類的相當復(fù)雜的標簽。 您的“小于”(<)和“大于”(>)鍵將表示感謝。
秘銀
并非所有替代方案都是微小且極簡的。 在這種情況下, 秘銀可能被稱為“中型”框架,盡管它的大小只有8KB左右。 所有這些代碼都使用其他有效代碼來構(gòu)建具有有效更新機制的虛擬DOM,但同時還提供了一套標準化的工具來應(yīng)對許多標準挑戰(zhàn),例如路由和XMLHttpRequest調(diào)用。 項目設(shè)計者希望Mithril項目相對標準化,他們認為將此代碼添加到主庫中可以提高標準化程度。 如果這還不夠的話,他們還會推出一些標準格式和慣用結(jié)構(gòu)。
鮑勃里爾
如果您喜歡React的虛擬DOM和有狀態(tài)組件,并且喜歡使用TypeScript進行編程,那么Bobril或它的對Angular友好的表親ngBobril可能只是門票。 在某些基準測試中,該框架始終比React或Angular快得多,這可能是因為diff算法更快并且缺乏對同構(gòu)JavaScript的支持。 如果需要,還有一些CSS操作的速記功能和一個完整的狀態(tài)管理層BobX 。
馬可
如果您一直在花時間競標Pez分配器或其他收藏品,那么您會體驗到Marko的強大功能。Marko是一個纖巧,快速的框架,eBay通過開放源代碼許可證共享了該框架。 最好的部分可能是非常輕量級的模板語法,該語法巧妙地從HTML中刪除了大多數(shù)多余的脂肪,因此該結(jié)構(gòu)是由縮進定義的,而沒有其他內(nèi)容。 而且渲染引擎非常快速,能夠驅(qū)動更新速度超過60fps的精致舞蹈DIV星座。
斯維爾特
您的標準Web框架附帶一個編譯器和一個下載的庫,該庫在運行時處理編譯器生成的內(nèi)容。 這個分兩步的過程允許編寫非常復(fù)雜的代碼,但要以每次打開頁面時等待下載和解析運行時庫為代價。 Svelte編譯器通過吐出幾乎可以獨立運行的純JavaScript來擺脫這種復(fù)雜性,盡管它僅在某些較新的瀏覽器(例如Chrome,Firefox,Opera和IE10)中運行。 這是一個聰明的建筑技巧,可以產(chǎn)生占用很少內(nèi)存的非常輕量級的網(wǎng)站。
地獄
Inferno是另一個框架,旨在執(zhí)行React的大部分工作,但下載量較小,運行時間更快。 它通過放棄復(fù)雜的綜合事件機制,而只專注于最基本的事件(如onClick)來實現(xiàn)上述目標 。 該API的許多其他部分都是相似的(如果不是相同的話),如果不需要事件優(yōu)化層,則使代碼移入相對簡單。
事前
最小的React后代之一是Preact ,它提供了大多數(shù)最有價值的功能,例如虛擬DOM和復(fù)雜的組件,但剝奪了合成事件處理程序和一些props繼承。 盡管Inferno嘗試僅實現(xiàn)最重要的事件(如onClick ,但Preact不會嘗試對事件做任何事情,而使您只能依賴瀏覽器的本機addEventListener 。 排除功能并沒有增加太多(他們認為)的是如何使下載量變得更小。 這有點折衷,因為基準測試表明Preact比Inferno慢一些。 當然,您的應(yīng)用程序可能會有所不同,并且里程可能會有所不同。 如果您確實需要與React的純粹兼容性,甚至還有一個庫( preact-compat )可以解決構(gòu)建期間的大多數(shù)問題。
哈皮
許多框架合而為一。 Hapi不僅是插件的集合,還包含幾十個代碼位,您可以根據(jù)需要將其混合到堆棧中。 身份驗證,授權(quán)和日志記錄是繁瑣的工作,可以通過許多選項解決。 如果您要構(gòu)建一個包含API的微服務(wù)架構(gòu),那么標準化的Swagger插件將自動從您的基本代碼生成Swagger文檔。
考阿
有時,您需要一個相當復(fù)雜的例程集合,這些例程可以處理傳入的請求并將其轉(zhuǎn)換為多個更改,其中一些操作很復(fù)雜。 Koa旨在使所有這些工作的組織變得更加簡單。 它的秘密在于,它將通常控制JavaScript的回調(diào)函數(shù)轉(zhuǎn)變?yōu)橐唤M異步函數(shù),這些異步函數(shù)將在適當?shù)臅r候觸發(fā)。 嵌套的意大利面條回調(diào)堆棧變成了更干凈的東西。
巢
降低服務(wù)器復(fù)雜性的另一種選擇來自Nest團隊,他們提供了一種架構(gòu),其中填充了控制器,管道和提供程序,并提供了一些防護,攔截器和異常過濾器以保持秩序。 該框架是現(xiàn)代的,隨時可以從一開始就處理GraphQL和微服務(wù)請求。
Drupal,WordPress和Rails
這些天來,用JavaScript內(nèi)置并在Node.js之上運行的框架充斥著Web開發(fā)世界的心理中心。 但是,如果忽略上一代基于PHP的上一代,這可能是一個錯誤,該基礎(chǔ)比以往任何時候都快,而且還具有像JavaScript這樣的即時編譯器。 Ruby及其Rails框架繼續(xù)充當堅如磐石的網(wǎng)站的基石。
經(jīng)過十多年的不斷發(fā)展和努力,上一代人備受打擊,并且經(jīng)受了考驗。 有經(jīng)驗豐富的設(shè)計師可以為應(yīng)用程序制作主題和外觀。 很有可能有人已經(jīng)用您需要的功能構(gòu)建了模塊。 因此,在探索一個聰明的Node.js框架之前,請考慮其中一項舊有的東西是否已經(jīng)可以做很多甚至不需要的事情。
香草JS
您可能會認為這是對“皇帝的新裝”的刻薄挖掘或諷刺,但很難與它的成功爭論。 Vanilla JS是一個自吹自that的網(wǎng)站,其網(wǎng)站使用的網(wǎng)站數(shù)量超過了“ jQuery,Prototype JS,MooTools,YUI和Google Web Toolkit的總和 。” 考慮到j(luò)Query的泛濫,這可能是正確的,也可能不是正確的,但讓我們笑一笑。 該站點還帶有一個可愛的小選擇器,使您可以將不同組件的自定義歸檔捆綁在一起,例如Math,DOM,閉包或正則表達式。 無論您選擇什么,結(jié)果都是令人難以置信的零字節(jié)長。 嘗試擊敗那個!
開玩笑的意思是,有時僅使用JavaScript中的一些標準元素并跳過多余的部分是有道理的。 諸如jQuery或React之類的庫和框架之所以開始,部分是由于瀏覽器之間的瘋狂差異。 由于標準化,許多差異已經(jīng)消失了。
當然,香草JS支持者不會面對這樣的事實: $()類的速記函數(shù)不僅方便,而且還節(jié)省了我們自己代碼中的空間。 但是,如果您只是偶爾使用document.getElementById ,則可能無關(guān)緊要。 如果您只是要在網(wǎng)頁上添加一些功能,而這些功能將做一些基本的事情,那么純凈的原始JavaScript可能是您最快的框架。
From: https://www.infoworld.com/article/3300156/15-great-alternatives-to-react-angular-and-vue.html
總結(jié)
以上是生活随笔為你收集整理的React,Angular和Vue的15种绝佳替代品的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hx711基准电压_hx711中文资料汇
- 下一篇: html5倒计时秒杀怎么做,vue 设