Angular 2+
有什么優(yōu)勢土涝?
Angular 2+ 的最大優(yōu)勢在于它的流行程度幌墓。也有人認為它和 Google 密切相關(guān)的名字冀泻,會影響團隊使用它弹渔。Angular 1 的迅速流行是因為那些來自其他交互式應用程序開發(fā)環(huán)境的人會發(fā)現(xiàn)對于開發(fā)單頁面 web 應用程序具有相似的模型-視圖模式捞附。
通過對 Angular 1 進行現(xiàn)代化演變和重新構(gòu)建框架的某些部分您没,Angular 2+ 已經(jīng)真正的爆發(fā)了,大量的正式的和非正式培訓機構(gòu)數(shù)量都讓人印象深刻欧募,開發(fā)者有很強的市場競爭力仆抵。對于用戶來說它有一套用于構(gòu)建用戶界面的豐富組件,這也是本系列中少有的幾個框架能夠做到這點舔糖。
有什么弱點和挑戰(zhàn)莺匠?
我們覺得 Angular 框架著重于在單個頁面應用程序中創(chuàng)建用戶界面并沒有處理構(gòu)建完整的 web 應用這個更大的關(guān)注點,如果不及早確定下來趣竣,這將會導致整個項目難以維護遥缕,在實際項目中,運行時提供不屬于核心框架的技術(shù)往往讓人覺得不可思議夕凝,這大大降低了 TypeScript 對最終開發(fā)者的價值户秤。
未來將何去何從?
Angular 5 剛剛發(fā)布虎忌,這看來是 Angular 已經(jīng)成功的印證了快速發(fā)布版本的承諾橱鹏,在 Google 的持續(xù)支持下,Angular 會越來越成熟挑围。
像許多的大型組織一樣,Google 具有多重(分裂)的人格杉辙,從外表上看,Angular 團隊和那些專注于瀏覽器標準的團隊之間顯得很和諧狂男。但我們的觀點是岖食,和諧只是一層薄薄的窗戶紙舞吭。Angular 團隊對于 web 組件和漸進式 web 應用沒有一個真正解決方案。我們認為羡鸥,業(yè)界普遍認可的標準將會在 Angular 框架中會逐步實現(xiàn),這將會影響到如何更好的構(gòu)建 Angular 應用將成為一個中/長期的風險存和。
何時選擇 Angular 2+
如果你需要在一個大型的框架內(nèi)獲取技術(shù)資源哑姚,框架內(nèi)的技術(shù)通常很容易移植;或者你需要在框架中訓練開發(fā)人員叙量,并且還要有一定的信心绞佩,他們會在短期內(nèi)獲得一定的開發(fā)能力猪钮,這樣的話你可以考慮 Angular 2+ 。需要注意的是 Angular1(angular.js)與 Angular2+ 是截然不同的肘交,其中的應用、技術(shù)和經(jīng)驗不能直接移植到 Angular2+ 的開發(fā)中去涯呻。
如果你的 web 應用能夠很好的轉(zhuǎn)化為標準的模型-視圖模式,那么你也可以忽略其他直接考慮使用 Angular2+ 涝登。
如果你對 Google Material UX 設(shè)計模式滿意效诅,那么 Material Angular 是遵循該模式的一種快速、簡單且可靠的方式咽笼。
React + Redux
有什么優(yōu)勢褐荷?
React 和 Redux 的最大優(yōu)勢在于它們相對簡單和專注嘹悼。做一件事情并把它做好是非常困難的,但這兩個庫都很有效地完成了它們的目標其监。雖然對于某些狀態(tài)容器方法可能是外部的限匣,但大多數(shù)開發(fā)人員還是可以輕松掌握概念,并了解單向數(shù)據(jù)體系結(jié)構(gòu)的好處锌历,簡化大量的用戶界面應用程序峦筒。
有什么弱點和挑戰(zhàn)?
React 和 Redux 最大的弱點不是它們是什么卤材,而是它們不是什么峦失。要構(gòu)建一個功能豐富的 Web 應用程序,你需要許多功能帆精,一旦脫離 React 和 Redux 和其他一些庫的核心,你將發(fā)現(xiàn)一個非常分散的社區(qū)卓练,擁有無數(shù)的解決方案和模式,不容易整合在一起。
因此整吆,雖然 React 和 Redux 都是非常專注的庫,但缺乏經(jīng)驗的團隊還是會很容易地生成不可維護的解決方案表蝙,而不是意識到他們所做的選擇會導致性能不佳或錯誤府蛇。 即使有經(jīng)驗的開發(fā)人員也可能意識到屿愚,一個松散的架構(gòu)或慣例可能會在未來困擾他們。
假省錢是一種對自己的欺騙穷遂,組織范圍內(nèi)采用 React 和 Redux 將輕松降低無效率問題娱据。 沒有其他庫和模式的廣泛約定和標準化,標準化 React + Redux 比較于我們正在采用的 JavaScript 來編寫我們的應用程序效率要高忌穿。
未來將何去何從结啼?
Facebook 和 React 最近從繁瑣的附加專利糾紛中抽離,他們認識到澡腾,就像其他項目一樣动分,更廣泛的社區(qū)能夠提高自己的聲音红选。 我覺得這有助于 Facebook 意識到他們還不能更好地了解我們,相信我們來引導項目坟乾。 希望這將繼續(xù)貫穿項目的特點和技術(shù)方向。
很難預測 React 和 Redux 的未來明吩。 但是印荔,將庫集中在一起详羡,確實會顯著提高適應性,大多數(shù)React + Redux 模式都會促進一個分離的體系結(jié)構(gòu)水泉,從而可以輕松地進行重構(gòu)和迭代窒盐。 兩年前,大家喜歡的還是React + Flux畔师,但整個社區(qū)很快就擁抱了Redux牧牢。 思維或模式的其他重大轉(zhuǎn)變可能很容易被采納。 這種關(guān)鍵能力可能會持續(xù)到未來伯铣。
何時選擇 React + Redux 轮纫?
如果你很少需要手把手指導,并且正在尋找更好的庫而不是全面的框架放前,那么 React + Redux 可能是正確的凭语。 在這一過程中撩扒,你不僅需要對你的團隊和組織的能力保持誠實,還要在你的初始開發(fā)過程中,以及在整個應用程序的長期維護過程中保持誠實豪墅。
Vue.js
有什么優(yōu)勢偶器?
漸進式構(gòu)建能力是 vue.js 最大的優(yōu)勢屏轰,vue 有一個簡潔而且合理的架構(gòu)亭枷,使得它易于理解和構(gòu)建搀崭。
vue 有一個強大的充滿激情人群的社區(qū)猾编,這為 vue.js 增加了巨大的價值答倡,使得為一個空白項目創(chuàng)建一個綜合的解決方案變得十分容易轰传。
有什么弱點和挑戰(zhàn)?
在模型-視圖應用程序和狀態(tài)容器類型的應用程序之間的互相轉(zhuǎn)換可能會令人感到困惑瘪撇,即使沒有完美包含一個模式到另一個模式的完美轉(zhuǎn)換获茬,但讓人感覺希望能維持兩個模式的相關(guān)性。對于那些期待 vue.js 完美解決方案倔既,并可能導致難以維護不一致的應用程序的人來說恕曲,這至少是令人困惑的。
一個更大的挑戰(zhàn)是 vue.js 依賴于一個單獨的人渤涌,很明顯佩谣,其他的項目基本是由一個組織提供支持,但這讓人感覺更加有意義实蓬,雖然它有一個強大文件的社區(qū)和許多有創(chuàng)新的新增項目,但是 vue 核心的開發(fā)基本落在一個人身上调鬓。
我們很高興看到 vue 更加容易接受新興的標準方法袖迎,但是它的類似于 web 組件的模式辜贵,而不是真正的 web 組件托慨,這可能是 vue 所得不償失的地方厚棵。
未來將何去何從婆硬?
雖然 vue.js 有相當廣泛的應用彬犯,但也很難預測在中期發(fā)展中這個勢頭能持續(xù)多久谐区,它不是由一個商業(yè)組織直接支持并維護,因此评也,這很大程度上依賴于維護者的生存能力和繼續(xù)維護下去的愿望來決定坤邪。
它也表現(xiàn)出了一定程度的語言適應能力罩扇,并且隨著某些模式的落伍和失寵而繼續(xù)保持自身語言的現(xiàn)代化和時代性喂饥,目前沒有跡象表明 vue.js 架構(gòu)將來無法適應進一步發(fā)展员帮。
何時選擇 Vue.js?
如果你有一個傳統(tǒng)的 web 應用程序氯材,并需要一個強壯穩(wěn)健的應用程序?qū)忧庀敲?vue.js 可能是一個很好的選擇冗尤,它有清晰的模式裂七,即使沒有經(jīng)驗的團隊也能正確或者錯誤的使用它。盡管 vue UX 框架沒有開箱即用的功能徙瓶,但在 vue.js 上也能大量持續(xù)性構(gòu)建應用倍啥,這將有利于你的項目。
Dojo 2
有什么優(yōu)勢蒲稳?
Dojo2 專注于帶來更多構(gòu)建在狀態(tài)容器體系之上的動態(tài)組件的體驗模式江耀,填補了 react+redux 等框架的許多空白祥国。
Dojo2 也知道它不單單只是在自己的生態(tài)圈發(fā)展,通過包含 web 組件導入和導出功能壁查,也意識到需要支持不同的應用實例睡腿,但它依舊提供了一個結(jié)構(gòu)化和固有的框架價值席怪,Dojo2 的核心基礎(chǔ)仍然是專注于提供交互性挂捻。
Dojo2 覺得它提供了大量重要的功能和解決方案惜辑,這對于構(gòu)建完整的 web 應用是十分重要的盛撑,對于其他大多數(shù)框架而言這并不是重點抵卫。提供一個國際化系統(tǒng)和廣泛的易接入性的模式也是其中之一,同時也供一個主題系統(tǒng)和演進模式晚树,用以確保不僅能為 Typescript/JavaScript 提供良好的代碼開發(fā)慨亲,也能像 CSS 那樣管理資源刑棵。
Dojo2 專注于提供一個結(jié)構(gòu)化和符合人體工程學的開發(fā)環(huán)境蛉签,通過使用 typescript 和其他開發(fā)模式,它試圖提供安全的防護機制去引導新手開發(fā)人員乒验,通過專注于提高框架開發(fā)效率和開發(fā)安全性锻全,旨在讓開發(fā)團隊能夠快速交付更好的 web 應用程序鳄厌。
有什么弱點和挑戰(zhàn)泪漂?
有爭論的是萝勤,通過進一步延長 Dojo2 的發(fā)布時間的做法是否是在阻礙框架的發(fā)展,反觀其他項目由于其資源的擴大能夠繼續(xù)發(fā)展和快速迭代趟径,導致 Dojo2 目前明確的處在一個擁擠的競爭環(huán)境之中癣防。
這也許是一個潛在的發(fā)展機遇和挑戰(zhàn),同時希望能夠在靈活性和交互性上而不是別的特殊理由去使用 Dojo2 幕屹。
未來將何去何從迅腔?
Dojo2 將是未來優(yōu)秀 web 框架之一掠兄,它將繼續(xù)努力為構(gòu)建可擴展性的 web 應用程序提供清晰的模式和指導蚂夕。隨著新標準的不斷出現(xiàn),Dojo2 將進一步努力去在框架中實現(xiàn)新的標準方法等脂,繼續(xù)嘗試擴大框架的開放性和交互性搏屑,創(chuàng)造適合更多人使用的解決方案辣恋。
何時選擇 Dojo2?
如果你想采用一個靈活的、現(xiàn)代的底靠、響應式的 web 應用程序架構(gòu),并且你需要很多智能化的默認設(shè)置鳄逾,那么 Dojo2 將是一個不錯的選擇雕凹。不用去拼湊和構(gòu)建一個管道,并且為你提供更高階的命令模式讓你可以更加專注的開發(fā)項目汽摹,更加確認它是直接為你可以直接生產(chǎn)開發(fā)所準備的逼泣。另外拉庶,如果你了解 typescript 的優(yōu)勢,Dojo2 會十分嚴謹?shù)氖褂?typescript 來管理并提供一個穩(wěn)健的開發(fā)者開發(fā)環(huán)境皆尔。
Ember
有什么優(yōu)勢?
Ember.js可能是最固執(zhí)己見的主流框架杆麸,這也是其最大的優(yōu)勢。它有創(chuàng)建Ember.js應用程序的正確方法揭斧,通常只有一種方法來創(chuàng)建應用程序。Ember.js更類似于一個產(chǎn)品或平臺旦万,在那里你會到一個供應商的長期支持和維護成艘。Ember.js提供了對其平臺的全面版本管理饲握,升級工具以及對API升級的強大指導和工具踱葛。成熟尸诽,是對Ember.js的一個很好的總結(jié)。
Ember.js多年來已經(jīng)證明商蕴,它可以保持其框架并使其與現(xiàn)代標準保持一致苛谷,同時不會過早遺忘傳統(tǒng)瀏覽器。
Ember.js有一個清晰合理的架構(gòu)來全面構(gòu)建Web應用程序锣尉。
有什么弱點和挑戰(zhàn)?
Ember.js可能是最固執(zhí)己見的主流框架拇厢,這也是它最大的弱點。雖然社區(qū)是開放的并且接受投資邪媳,但是仍然需要找到一個正確的方式來擺脫下滑的趨勢,這可能是具有挑戰(zhàn)性的問題。
擁有一個豐富的第三方社區(qū)也可能具有挑戰(zhàn)性据悔。由于沒有開箱即用的UX組件,這很可能會讓你使用第三方套件菠隆。你可能會發(fā)現(xiàn),雖然這些套件并不全面清女,你將需要建立或?qū)ふ移渌M件。由于Ember.js沒有擴展迄沫,所以對如何交互和管理DOM,你會發(fā)現(xiàn)你有不一致的部件尘吗,而且也沒有提供一個易于管理的界面。
未來該何去何從擒贸?
Ember.js的主要貢獻者是JavaScript語言標準委員會TC39的核心參與者。在過去的幾年中,Ember.js對JavaScript的方向比任何其他框架都有更直接的影響誉碴。我們的觀點是,這將在未來繼續(xù)受影響蹬屹,并幫助促進JavaScript的特性和模式。這也意味著Ember.js將繼續(xù)保持與未來標準的緊密結(jié)合的關(guān)系厦取。
Ember.js不可能在將來隨時消失,盡管他們的創(chuàng)新很可能是通過與Ember.js緊密結(jié)合的其他項目來實現(xiàn)的,比如Glimmer漂坏,它為Ember.js應用程序提供了一個新的UI框架顶别,該框架基于TypeScript。
為什么我會選擇Ember.js剩失?
如果你在框架中尋找成熟度,那么Ember.js很難出錯。另外绽媒,由于Ember.js提供的內(nèi)容被理解,并且有廣泛的官方和官方認可的培訓获三,以及嚴格的結(jié)構(gòu),找到能夠建立基于Ember.js的應用程序的人才可能比其他框架更容易限佩。也可以教大型團隊如何構(gòu)建應用程序理疙,并確保整個團隊的共同對話和理解砖顷。
如果你想要對社區(qū)保持信心择吊,并批判性地思考他們平臺的變化粤攒,那么Ember.js會是一個很好的考慮因素焕济。您可以花更少的時間跟隨當前的技術(shù)趨勢,并更多地關(guān)注創(chuàng)建應用程序。
Aurelia
優(yōu)勢在哪?
Aurelia有很多關(guān)于構(gòu)建Web應用程序的方法轮听,結(jié)構(gòu)和想法。 這個框架的編寫有很多技術(shù)上的優(yōu)點藻茂。
有什么弱點和挑戰(zhàn)京办?
我們估計最大的挑戰(zhàn)就是核心發(fā)展的動力和臨界物質(zhì)的缺乏。我們感覺很多的觀點和概念都是我們對其他框架的批評性的想法财饥,但是這些愿望都沒有完全交付。它似乎就像是一個正在進行的工作一樣,就像Dojo 2宁改,但是它已經(jīng)是一個已發(fā)布的框架耙考。
大部分的Aurelia是坐落在一個人的肩膀上锅论,如果這個人的的注意力或可用性改變,那么將會帶來挑戰(zhàn)剔猿。
未來會如何?
對于Aurelia來說,有一個很大的機會舱污。如果它能夠?qū)崿F(xiàn)他的愿景霜瘪,他將要完整的保存這個構(gòu)建Web應用程序的已有的模板,但會以更健全布讹、更完整的方式交付。我們不知道Aurelia是否能夠充分的利用這次機會。
為什么我會選擇Aurelia呼股?
如果您致力于Web模型視圖應用程序模塊允扇,并且你和你的團隊試圖想把一些事做的更好狭园,那么Aurelia會是一個選擇罚舱。它就像是一個正在尋求一個更大的社區(qū)來幫助它的發(fā)展和進化的框架。