React、Vue和Angular
React
React起源于Facebook的內(nèi)部項目肮韧,用來架設(shè)Instagram 的網(wǎng)站鱼鼓,于2013年5月開源,并于2017年9月27發(fā)布v16.0版本弥鹦,遵循MIT許可,即完全開源爷辙。
- 特點(diǎn):
- 聲明式設(shè)計:React采用聲明范式彬坏,可以輕松描述應(yīng)用。
- 高效:React通過對虛擬DOM技術(shù)犬钢,最大限度地減少與DOM的交互苍鲜。
- 靈活:React可以與已知的庫或框架很好地配合。
- 優(yōu)點(diǎn):
- 速度快:在UI渲染過程中玷犹,React通過在虛擬DOM中的微操作來實現(xiàn)對實際DOM的局部更新混滔。
- 跨瀏覽器兼容:虛擬DOM幫助我們解決了跨瀏覽器問題,它為我們提供了標(biāo)準(zhǔn)化的API歹颓,甚至在IE8中都是沒問題的坯屿。
- 單向數(shù)據(jù)流:Flux是一個用于在JavaScript應(yīng)用中創(chuàng)建單向數(shù)據(jù)層的架構(gòu),它隨著React視圖庫的開發(fā)而被Facebook概念化巍扛。
- 有龐大而活躍的社區(qū)领跛。
- 相關(guān)的開發(fā)工具功能豐富。
- React Native使得Web應(yīng)用的邏輯可以復(fù)用于移動客戶端
- 缺點(diǎn):
- React使用一種新的語法JSX撤奸,需要額外學(xué)習(xí)成本吠昭。
- React實際上只操作了view層,需要配合react-route和redux構(gòu)建大型應(yīng)用胧瓜。
- 使用React技術(shù)棧的公司:阿里巴巴矢棚、美團(tuán)內(nèi)部系統(tǒng)、去哪兒等府喳。
- 優(yōu)秀的組件庫:Ant Design(螞蟻金服)
Vue
Vue.js的作者為Evan You(尤雨溪)蒲肋,任職于Google Creative Lab。Vue.js由個人項目發(fā)展成為開源項目,現(xiàn)為最流行的前端框架之一兜粘,目前更新到Vue2.0版本申窘。
- 特點(diǎn)
- 輕量級的框架。
- 支持雙向的數(shù)據(jù)綁定孔轴。
- 通過指令擴(kuò)展了HTML剃法。
- 優(yōu)點(diǎn):
- 簡單:官方文檔很清晰,簡單易學(xué)距糖。
- 靈活:不斷繁榮的生態(tài)系統(tǒng)玄窝,可以在一個庫和一套完整框架之間自如伸縮。
- 高效:20kB min+gzip 運(yùn)行大小悍引,超快虛擬 DOM,最省心的優(yōu)化 帽氓。
- 吸收了angular和react的優(yōu)點(diǎn)趣斤。
- 缺點(diǎn):
- vue是新的框架,相對來說沒angular成熟黎休。
- 同樣有很多額外的模塊浓领,如路由器和狀態(tài)管理工具。
- 默認(rèn)不支持IE9以下瀏覽器势腮。
- 使用Vue技術(shù)棧的公司:
餓了么联贩、稀土掘金(內(nèi)容分享網(wǎng)站)、美團(tuán)等捎拯。 - 優(yōu)秀的組件庫:
Element UI
Angular
AngularJs是Google開源的一款JavaScript MVVM框架泪幌,彌補(bǔ)了HTML在構(gòu)建應(yīng)用方面上的不足,通過指令擴(kuò)展HTML詞匯署照,使開發(fā)者可以動態(tài)聲明HTML內(nèi)容祸泪,目前已更新到angular4.0版本。
- 特點(diǎn)
- 良好的應(yīng)用程序結(jié)構(gòu)建芙。
- 雙向數(shù)據(jù)綁定没隘。
- 通過指令擴(kuò)展HTML詞匯。
- 以HTML為中心禁荸。
- 優(yōu)點(diǎn):
- 模板功能強(qiáng)大豐富右蒲,自帶了極其豐富的angular指令。
- 是一個比較完善的前端框架赶熟,包含服務(wù)瑰妄,模板,數(shù)據(jù)雙向綁定钧大,模塊化翰撑,路由,過濾器,依賴注入等所有功能眶诈;
- 自定義指令涨醋,自定義指令后可以在項目中多次使用。
- angularjs是由谷歌開發(fā)逝撬,這也意味著他有一個堅實的基礎(chǔ)和社區(qū)支持浴骂。
- 缺點(diǎn):
- 陡峭的學(xué)習(xí)曲線,深入后概念很多宪潮。
- 對于數(shù)據(jù)量龐大的應(yīng)用會有性能問題溯警。
- 比較笨重。
- 使用Angular技術(shù)棧的公司:
錘子科技等狡相。 - 優(yōu)秀的組件庫:
Angular Material
總結(jié)
Angular梯轻、React和Vue三者面對的都是web應(yīng)用,其中Angular適應(yīng)領(lǐng)域相對較窄一些尽棕,React可以擴(kuò)展到服務(wù)端喳挑,移動端Native部分,而Vue比較輕量滔悉,可快速搭建業(yè)務(wù)場景比較輕的頁面伊诵。