現(xiàn)在前端三架馬車(chē)Angular、React、Vue各有所長(zhǎng)。Angular從一開(kāi)始就帶有很明顯的工程化血統(tǒng),齊全的cli命令,背靠TypeScript,涉及模塊、服務(wù)以及指令等概念,使用后端的依賴注入思想,特有模板語(yǔ)法。React和Vue就"輕"很多,React甚至只是一個(gè)UI庫(kù),他們共同的一個(gè)思想就是,做好且只做好。

Angular、React、Vue三選一,前端工程師更青睞使用哪款框架?下面小編就說(shuō)說(shuō)自己的看法。
在大型超大型web應(yīng)用開(kāi)發(fā)上,看好Angular
深度整合Typescript和Rxjs。ts解決了工程化的問(wèn)題,rxjs解決了開(kāi)發(fā)速度的問(wèn)題。但是學(xué)習(xí)成本,可能對(duì)于Java,c#等OOP工程師來(lái)說(shuō)比較容易上手,但是對(duì)于JavaScript工程師來(lái)說(shuō),少有工程化的經(jīng)驗(yàn),接受起來(lái)比較痛苦。當(dāng)然,不只是Angular可以采用Typescript開(kāi)發(fā),很多其他的Dom庫(kù)都可以,Angular相比他們的優(yōu)勢(shì)在于:
零配置
深度整合設(shè)計(jì)模式
約定才是框架的本質(zhì)
尤其是第三條,相信很多天才程序員都能復(fù)現(xiàn)Angular的設(shè)計(jì)模式和功能,但是由于并非“框架”,沒(méi)有其他程序員跟進(jìn),顯然就不能適用于大型超大型應(yīng)用,畢竟對(duì)于大項(xiàng)目來(lái)說(shuō),溝通往往會(huì)成為開(kāi)發(fā)瓶頸。
rxjs很多人認(rèn)為太重,沒(méi)有必要,當(dāng)然你也可以用很不優(yōu)雅的toPromise方法來(lái)處理異步操作,甚至直接用behaviorObject.value也可以,但是當(dāng)異步操作繁雜,重復(fù),非一致的時(shí)候,rxjs可以很優(yōu)雅地保證數(shù)據(jù)的穩(wěn)定。rxjs的運(yùn)用一方面是為了處理這種復(fù)雜的異步邏輯,另一方面,就是為了讓異步數(shù)據(jù)流可以聲明,而不用像promise那樣聲明冗長(zhǎng),或者async await那樣函數(shù)化,響應(yīng)式是基于數(shù)據(jù)的響應(yīng)式而不是基于函數(shù)。
小型應(yīng)用上,看好vue
其實(shí)絕大部分web應(yīng)用,都應(yīng)該只是小型應(yīng)用。公司官網(wǎng),論壇,甚至是規(guī)模不大的電子商務(wù)網(wǎng)站和基本功能的OA,ERP系統(tǒng),都只是小型web應(yīng)用。它們數(shù)據(jù)源穩(wěn)定,對(duì)于運(yùn)營(yíng)的要求不高,但是對(duì)加載速度等都有很高的要求。這個(gè)時(shí)候,小巧的vue就成了首選。Proxy實(shí)現(xiàn)的響應(yīng)式相比Angular的zone暴力代理和rxjs的復(fù)雜操作顯得更加接地氣,不需要額外地進(jìn)行學(xué)習(xí)。對(duì)象式的聲明在UI實(shí)現(xiàn)上速度更快。生態(tài)雖然沒(méi)有react那么熱鬧但是小而美的庫(kù)也很多,nuxt的實(shí)現(xiàn)值得點(diǎn)贊。
個(gè)性化需求、中型應(yīng)用,更傾向react
在中大型應(yīng)用中,不是一定要搞Java那一套的,而且在前端這種對(duì)工期要求很緊的領(lǐng)域,沒(méi)必要因?yàn)樘砑有鹿δ芏鼡Q新的平臺(tái),能用到rxjs和依賴注入的前端應(yīng)用場(chǎng)景并不多。所以如果采用react,從項(xiàng)目一開(kāi)始就漸進(jìn)式地添加模塊,往往更適合快速發(fā)展的產(chǎn)品。
有任何疑惑加群QQ786276452
對(duì)前端的技術(shù),架構(gòu)技術(shù)感興趣的同學(xué)關(guān)注我的頭條號(hào),并在后臺(tái)私信發(fā)送關(guān)鍵字:“前端”即可獲取免費(fèi)的架構(gòu)師學(xué)習(xí)資料
知識(shí)體系已整理好(源碼,筆記,PPT,學(xué)習(xí)視頻),歡迎免費(fèi)領(lǐng)取。還有面試視頻分享可以免費(fèi)獲取。關(guān)注我,可以獲得沒(méi)有的架構(gòu)經(jīng)驗(yàn)哦!!