參考https://blog.fundebug.com/2018/07/09/react_vs_angular_vue/
Angular 5
Angular是一個(gè)從2009年就開始推出JavaScript MVVM 框架
優(yōu)點(diǎn)
- 新特性:RXJS(是一種針對(duì)異步數(shù)據(jù)流編程工具,或者叫響應(yīng)式擴(kuò)展編程主籍;Angular引入RxJS為了就是讓異步可控鲤嫡、更簡(jiǎn)單),Angular 5還可以快速編譯(3秒內(nèi))柿祈,有新的HttpClient;
- 詳細(xì)的文檔幾乎涵蓋了所有必須的信息哈误,便于學(xué)習(xí);
- 數(shù)據(jù)雙向綁定,可以減少出錯(cuò)的風(fēng)險(xiǎn);
- MVVM(
Model-View-ViewModel
)躏嚎,View的變化會(huì)自動(dòng)更新到 ViewModel蜜自,ViewModel的變化也會(huì)自動(dòng)同步到View上顯示(自動(dòng)同步是因?yàn)閂iewModel的屬性中實(shí)現(xiàn)了Observer,當(dāng)屬性變更時(shí)能觸發(fā)相應(yīng)的操作
)使得開發(fā)者可以針對(duì)同一個(gè)App模塊同時(shí)開發(fā); - 依賴注入使得模塊化和模塊中組件引入更加方便卢佣;
缺點(diǎn)
- 語(yǔ)法比較復(fù)雜重荠;好在Angular 5使用TypeScript 2.4,已經(jīng)簡(jiǎn)化了很多
- 遷移問(wèn)題:從低版本升級(jí)到新版本的時(shí)候虚茶,不兼容導(dǎo)致遷移成本高戈鲁。
適用情況
由于Angular使用的是TypeScript,因此它更適合于單頁(yè)Web應(yīng)用嘹叫,應(yīng)用程序體積較大婆殿,而且有著未來(lái)的擴(kuò)展計(jì)劃的也適用Angular
ReactJS
ReactJS是一個(gè)Facebook在2013年開源的JavaScript庫(kù)
優(yōu)點(diǎn)
- 易于學(xué)習(xí):由于語(yǔ)法十分簡(jiǎn)潔
- 組件化程度高具有高度的靈活性;
- 虛擬DOM將HTML待笑,XHTML鸣皂、或則XML的文檔格式化成樹形結(jié)構(gòu),這樣瀏覽器可以更容易理解;
- 結(jié)合ES6/7寞缝,React可以很容易寫出各種酷炫代碼癌压;
- Downward數(shù)據(jù)綁定,單向數(shù)據(jù)流荆陆,父節(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)化這一過(guò)程。
缺點(diǎn)
- 缺乏官方文檔:ReactJS的快速開發(fā)使得文檔的缺乏命浴,眾多開發(fā)者的維護(hù)也使其缺乏一個(gè)系統(tǒng)化的思路娄猫;
- React因?yàn)樘`活增加了決策成本而不好使;
- 需要很長(zhǎng)的時(shí)間去掌握生闲,因?yàn)镽eactJS需要你對(duì)如何將UI和MVC框架整合有一個(gè)足夠深度的理解媳溺。
適用情況
適用于對(duì)于靈活性要求勝過(guò)功能性項(xiàng)目,適合熟悉JavaScript的開發(fā)者碍讯,可以用來(lái)開發(fā)應(yīng)用程序體積較大悬蔽,而且有著未來(lái)的擴(kuò)展計(jì)劃的項(xiàng)目
Vue.js
Vue.js是一個(gè)2013年誕生的前端框架
優(yōu)點(diǎn)
- 強(qiáng)化的HTML,有著很多和Angular相似的特點(diǎn)捉兴。
- 有詳細(xì)的文檔
- 可適用性:它和Angular以及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ù)用模板逗栽;
- 體積小:Vue.js只有20KB左右的大小失暂,使得其速度和靈活性相對(duì)于其它框架都好很多彼宠。
- 代碼整潔性好
- Vue提供了最簡(jiǎn)單的學(xué)習(xí)曲線,因此它是初學(xué)者的理想選擇
缺點(diǎn)
- 資源匱乏:Vue.js依然在整個(gè)市場(chǎng)中只占有很小的比例弟塞,所以相應(yīng)的資源凭峡、知識(shí)要少很多;
- 靈活性帶來(lái)的風(fēng)險(xiǎn):有時(shí)候决记,將其整合到大型項(xiàng)目的時(shí)候會(huì)有一些問(wèn)題摧冀,但是你不見得能夠找到解法;
適用情況
非常適合用于構(gòu)架非常靈活的UI和復(fù)雜的單頁(yè)面應(yīng)用,適合小團(tuán)隊(duì)和小項(xiàng)目