Vue或React?前端框架該如何選擇?

2016年到2017年兩年時(shí)間,前端框架從jQuery一家獨(dú)大的情況,發(fā)展到現(xiàn)在的Angular、Vue、React三足鼎立的情況,三個(gè)框架各有優(yōu)略,也都是比較成熟,但是同樣也造成了讓人無從下手的感覺,不知該如何選擇,下面就來談一談如何選擇該使用什么框架。

Angular

Angular脫胎于谷歌與2009年發(fā)布的angular.js,一直到16年年初發(fā)布Angular2,1.X到2.X,用了7年,然后發(fā)布了2之后就想開掛了一樣,迅速又發(fā)布了4,5兩個(gè)大版本。angular是一套完整的解決方案,從路由到DOM展現(xiàn),很完整的方案,1.X的版本也得到了很好的驗(yàn)證,很實(shí)用,但是由于2.X的版本對(duì)于1.X算是比較大的重寫,從1切換到2代價(jià)比較大,所以導(dǎo)致很多人就此放棄。但是Angular仍然是比較優(yōu)秀的解決方案之一。

Angular除了本身比較健壯,又是大公司出品,質(zhì)量有保障,還有另外一個(gè)比較吸引人的地方在于Ionic,Ionic采用Angular和cordova兩者結(jié)合,可以快速的用一套代碼同時(shí)開發(fā)iOS,Android,windows Phone等多個(gè)平臺(tái),當(dāng)然還不止這些,Ionic同時(shí)封裝了很多常用的指令和組件,讓開發(fā)跨平臺(tái)的APP變得更加便捷。

React

React從一出現(xiàn)就受到廣泛的關(guān)注,由于其出色的虛擬DOM、模塊化設(shè)計(jì)、API簡(jiǎn)潔、聲明式等特性,讓React兼具了開發(fā)效率以及運(yùn)行時(shí)的性能,React出自Facebook之手,也是大公司出品,質(zhì)量有保障。截止本文時(shí)間,React在github上的star數(shù)量已經(jīng)達(dá)到了84971個(gè),筆者在React還處于0.13的版本開始接觸,一經(jīng)使用,立馬就開始重度依賴,無論是后續(xù)的公司項(xiàng)目,還是個(gè)人項(xiàng)目都是使用React。使用下來,我選擇繼續(xù)使用React的原因有以下幾點(diǎn):

模塊化開發(fā),這點(diǎn)很重要,筆者在使用jQuery開發(fā)的時(shí)候經(jīng)常因?yàn)槿哂嗟南嗤a頭疼不已,特別是某些可重復(fù)使用的業(yè)務(wù)組件卻要同時(shí)維護(hù)多套代碼。

JSX,JSX這種開發(fā)模式剛推出來的時(shí)候很多人不習(xí)慣,甚至很多人因?yàn)檫@一點(diǎn)就直接拒絕React,但是筆者用了兩年之后會(huì)更習(xí)慣jsx的模式,因?yàn)檫@種代碼更具可讀性,比如這段代碼:

{this.renderTodoList()}
如果換做Angular,會(huì)成為一個(gè)for的指令包裹,單論語義化React會(huì)更可讀。

可定制能力強(qiáng),React本身只關(guān)注view層,所以可以實(shí)現(xiàn)更加自定義的需求,很多復(fù)雜的業(yè)務(wù)場(chǎng)景或者操作空間都可以輕松實(shí)現(xiàn),而且實(shí)現(xiàn)出來的組件自定義能力也很強(qiáng)。

除了上面總結(jié)的三點(diǎn),React被社區(qū)廣為關(guān)注的另一個(gè)原因則是React-native,官網(wǎng)上號(hào)稱:Learn once , write everywhere,React-native將虛擬DOM的概念移到了原生開發(fā)當(dāng)中,并且用jsx的語法即可實(shí)現(xiàn)原生APP的開發(fā),性能上要比H5加webview的模式上更高,既解決了性能的痛點(diǎn),又提升了開發(fā)效率,打破了多端開發(fā)的技術(shù)壁壘,再加上現(xiàn)在社區(qū)出現(xiàn)很多優(yōu)秀的跨端的組件庫,可以輕松實(shí)現(xiàn)一套代碼iOS和Android兩端通用,其他平臺(tái)由于用戶量不多,不支持也沒什么問題。

Vue

2016年是Vue崛起的一年,Vue2一經(jīng)推出,其關(guān)注度迅速上升,采用類似Angular的指令的寫法,配上虛擬DOM技術(shù),再加上庫的體積比較小,上手難度也小,迅速竄紅,甚至超越Angular。Vue采用漸進(jìn)式的開發(fā),可以直接引入JavaScript便可進(jìn)行開發(fā),也可使用全家桶進(jìn)行開發(fā)。筆者體驗(yàn)過Vue一段時(shí)間,Vue會(huì)更容易上手,且很多概念會(huì)更容易接受。

而且Vue的核心開發(fā)者是中國人,無疑在中國Vue的受歡迎程度要更高,且Vue的很多使用習(xí)慣會(huì)更符合國人的習(xí)慣。所以現(xiàn)在中國很多大大小小的公司都已經(jīng)開始使用Vue來做主要開發(fā)框架。再者,之前阿里開源的weex框架正是使用Vue代碼來實(shí)現(xiàn)一套代碼,三端通用(H5,iOS ,Android),此項(xiàng)目已經(jīng)捐贈(zèng)給appache且被appache列入孵化器,相信不久后weex也將成為一個(gè)比較成熟的解決方案。

文末總結(jié):

三大框架各有優(yōu)劣,無所謂孰優(yōu)孰劣,無論哪一種方案都比較成熟,也能完成日常的工作需求。至于選擇哪款框架可根據(jù)實(shí)際情況決定,如果覺得希望快速上手,可以選擇Vue,如果希望更高的移動(dòng)端性能,以及更穩(wěn)定的移動(dòng)端開發(fā),可以選擇React,如果團(tuán)隊(duì)實(shí)力比較強(qiáng),需要考慮多終端的開發(fā),Angular是一個(gè)不錯(cuò)的選擇。


關(guān)于作者:eaTong,主頁:eaTong個(gè)人站。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容