現(xiàn)在企業(yè)的主流前端框架有哪些?
謝謝邀請(qǐng)!
企業(yè)主流的前端框架1、
Angular.js
github排名:star:59.6K
angular框架算是前端框架中的常青樹,自2009年由Misko Hevery等人創(chuàng)建后,在前端框架中一直占有重要的地位。angular是一款優(yōu)秀的前端JS框架,被用于Google的多款產(chǎn)品當(dāng)中。angularJS有著諸多特性,最核心的是:MVVM、模塊化、自動(dòng)化雙向數(shù)據(jù)綁定、語(yǔ)義化標(biāo)簽、依賴注入等等,這些特性都是前端人員非常喜歡的東西。
曾經(jīng)作為最流行的前端js框架,現(xiàn)在熱度也在慢慢降低,體量大,不適合小項(xiàng)目使用,使得angular不再享受獨(dú)寵。
2、Vue.js(三大主流框架之一)
github:star: 163K
Vue (讀音 /vju?/,類似于 view) 是一套用于構(gòu)建用戶界面的漸進(jìn)式JavaScript框架。與其它大型框架不同的是,Vue 被設(shè)計(jì)為可以自底向上逐層應(yīng)用。Vue 的核心庫(kù)只關(guān)注視圖層,方便與第三方庫(kù)或既有項(xiàng)目整合。
Vue.js是一套構(gòu)建用戶界面的漸進(jìn)式框架。與其他重量級(jí)框架不同的是,Vue 采用自底向上增量開發(fā)的設(shè)計(jì)。Vue 的核心庫(kù)只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。另一方面,Vue 完全有能力驅(qū)動(dòng)采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫(kù)開發(fā)的復(fù)雜單頁(yè)應(yīng)用。Vue.js 的目標(biāo)是通過盡可能簡(jiǎn)單的 API 實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件 [2] 。Vue.js 自身不是一個(gè)全能框架——它只聚焦于視圖層。因此它非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。另一方面,在與相關(guān)工具和支持庫(kù)一起使用時(shí) [3] ,Vue.js 也能完美地驅(qū)動(dòng)復(fù)雜的單頁(yè)應(yīng)用。有以下幾個(gè)特點(diǎn):
(1) 易用
已經(jīng)會(huì)了 HTML、CSS、JavaScript?即刻閱讀指南開始構(gòu)建應(yīng)用!
(2) 靈活
不斷繁榮的生態(tài)系統(tǒng),可以在一個(gè)庫(kù)和一套完整框架之間自如伸縮。
(3) 高效
20kB min+gzip 運(yùn)行大小超快虛擬 DOM最省心的優(yōu)化
3、react.js(三大主流框架之一,GitHub排名僅次Vue)
github: star: 148K
React 是一個(gè) Facebook 和 Instagram 用來(lái)創(chuàng)建用戶界面的 JavaScript 庫(kù)。很多人認(rèn)為 React 是 MVC 中的 V(視圖)。我們創(chuàng)造 React 是為了解決一個(gè)問題:構(gòu)建隨著時(shí)間數(shù)據(jù)不斷變化的大規(guī)模應(yīng)用程序。為了達(dá)到這個(gè)目標(biāo),React 采用下面兩個(gè)主要的思想。
有以下幾個(gè)特點(diǎn):
(1) 聲明式
React 使創(chuàng)建交互式 UI 變得輕而易舉。為你應(yīng)用的每一個(gè)狀態(tài)設(shè)計(jì)簡(jiǎn)潔的視圖,當(dāng)數(shù)據(jù)改變時(shí) React 能有效地更新并正確地渲染組件。
以聲明式編寫 UI,可以讓你的代碼更加可靠,且方便調(diào)試。
(2) 組件化
創(chuàng)建擁有各自狀態(tài)的組件,再由這些組件構(gòu)成更加復(fù)雜的 UI。
組件邏輯使用 JavaScript 編寫而非模版,因此你可以輕松地在應(yīng)用中傳遞數(shù)據(jù),并使得狀態(tài)與 DOM 分離。
(3) 一次學(xué)習(xí),隨處編寫
無(wú)論你現(xiàn)在正在使用什么技術(shù)棧,你都可以隨時(shí)引入 React 來(lái)開發(fā)新特性,而不需要重寫現(xiàn)有代碼。React 還可以使用 Node 進(jìn)行服務(wù)器渲染,或使用 React Native 開發(fā)原生移動(dòng)應(yīng)用。
ReactJS vs Angular5 vsVue.js
的使用情況總的來(lái)說(shuō),React和Angular一直保持著相對(duì)一致的發(fā)展步調(diào)。如果要我嘗試做個(gè)預(yù)測(cè),那么React會(huì)持續(xù)升高,Angular有所下滑。Vue.js依然不是很明晰,不過由于其框架的簡(jiǎn)潔性,發(fā)展也不錯(cuò)。
下面我們各個(gè)框架的優(yōu)缺點(diǎn):
(1) Angular 5
Angular是一個(gè)從2009年就開始推出JavaScript MVVM框架,對(duì)于構(gòu)建高度可交互的網(wǎng)頁(yè)應(yīng)用非常方便。
優(yōu)點(diǎn)
新特性:RXJS,快速編譯(3秒內(nèi)),新的HttpClient;詳細(xì)的文檔幾乎涵蓋了所有必須的信息,你甚至不需要向同事咨詢。不過,你需要更多的時(shí)間去學(xué)習(xí);數(shù)據(jù)雙向綁定,可以減少出錯(cuò)的風(fēng)險(xiǎn);MVVM(Model-View-ViewModel)使得開發(fā)者可以針對(duì)同一個(gè)App模塊同時(shí)開發(fā);依賴注入使得模塊化和模塊中組件引入更加方便;缺點(diǎn)
與生俱來(lái)的復(fù)雜的語(yǔ)法;好在Angular 5使用TypeScript 2.4,已經(jīng)簡(jiǎn)單多了;遷移問題:從低版本升級(jí)到新版本的時(shí)候,不兼容導(dǎo)致遷移成本高。使用Angular 5的公司:Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase。
(2) ReactJS
ReactJS是一個(gè)Facebook在2013年開源的JavaScript庫(kù),可以非常方便地構(gòu)建大型網(wǎng)頁(yè)應(yīng)用。
優(yōu)點(diǎn)
易于學(xué)習(xí):由于語(yǔ)法十分簡(jiǎn)潔,和Angular相比,React要容易得多。工程師只需要重溫一下HTML的基本知識(shí)就足夠。根本不需要像Angular一樣,還要深度學(xué)習(xí)TypeScript。高度的靈活性;虛擬DOM將HTML,XHTML、或則XML的文檔格式化成樹形結(jié)構(gòu),這樣瀏覽器可以更容易理解;結(jié)合ES6/7,React可以很容易寫出各種酷炫代碼;Downward數(shù)據(jù)綁定,也就是說(shuō)父節(jié)點(diǎn)的數(shù)據(jù)不會(huì)受到孩子節(jié)點(diǎn)的影響;100%的開源,每天都有來(lái)自全世界無(wú)數(shù)的開發(fā)者的更新和改進(jìn);絕對(duì)的輕量級(jí),因?yàn)閿?shù)據(jù)處理既可以在用戶端,也可以在服務(wù)端;版本遷移非常容易,F(xiàn)acebook提供了”codemods”來(lái)自動(dòng)化這一過程。缺點(diǎn)
缺乏官方文檔:ReactJS的快速開發(fā)使得文檔的缺乏,眾多開發(fā)者的維護(hù)也使其缺乏一個(gè)系統(tǒng)化的思路;React因?yàn)樘`活增加了決策成本而不好使;需要很長(zhǎng)的時(shí)間去掌握,因?yàn)镽eactJS需要你對(duì)如何將UI和MVC框架整合有一個(gè)足夠深度的理解。使用ReactJS的公司: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft。
(3) Vue.js
Vue.js是一個(gè)2013年誕生的前端框架,非常適合用于構(gòu)架非常靈活的UI和復(fù)雜的單頁(yè)面應(yīng)用。
優(yōu)點(diǎn)
強(qiáng)化的HTML,也就是說(shuō)Vue.js有著很多和Angular相似的特點(diǎn)。詳細(xì)的文檔,Vue.js有著超級(jí)友好的文檔,開發(fā)者可以快速的學(xué)會(huì),這將會(huì)節(jié)省很多時(shí)間;可適用性:你可以很快地從其它框架轉(zhuǎn)移到Vue.js,因?yàn)樗虯ngular以及React都有一定的相似性;非常棒的整合性:Vue.js可以同時(shí)用于單頁(yè)面應(yīng)用和更加復(fù)雜的網(wǎng)頁(yè)應(yīng)用。主要在于你可以用它編寫很小的可交互部件,然后可以很容易地整合到現(xiàn)有的項(xiàng)目中而不會(huì)影響到整個(gè)系統(tǒng);可擴(kuò)展性:Vue.js可以用于快速開發(fā)大型復(fù)用模板;體積?。篤ue.js只有20KB左右的大小,使得其速度和靈活性相對(duì)于其它框架都好不少。缺點(diǎn)
資源匱乏:Vue.js依然在整個(gè)市場(chǎng)中只占有很小的比例,所以相應(yīng)的資源、知識(shí)要少很多;靈活性帶來(lái)的風(fēng)險(xiǎn):有時(shí)候,將其整合到大型項(xiàng)目的時(shí)候會(huì)有一些問題,但是你不見得能夠找到解法;來(lái)自中國(guó):許多的元素和描述依然使用中文。這對(duì)于開發(fā)中會(huì)引入一些復(fù)雜性,好在越來(lái)越多的相關(guān)資料已經(jīng)被翻譯成英文。使用Vue.js的公司:小米, 阿里巴巴, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters。
我們看下最近幾年的前端招聘一般的前端公司都需要精通這幾個(gè)框架的 ;
總結(jié)如果向從事前端,走的 更遠(yuǎn),這幾個(gè)框架是必須要精通的。