2017年最主流的三個(gè)WEB前端開發(fā)框架莫過(guò)于AngularJS谱轨、React以及Vue.js了,然而在實(shí)際的運(yùn)用中吠谢,這三者卻不盡相同土童,對(duì)于沒(méi)有AngularJS和React經(jīng)驗(yàn)的團(tuán)隊(duì)且遇上規(guī)模不大的前端項(xiàng)目來(lái)說(shuō),Vue.js因其容易上手會(huì)被列為首選工坊;而由于AngularJS和React解決的是同一個(gè)領(lǐng)域的問(wèn)題献汗,即Web前端應(yīng)用,或者更確切的說(shuō)是日益復(fù)雜的前端應(yīng)用王污。那么罢吃,面對(duì)如此復(fù)雜的兩個(gè)前端框架,我們?cè)撛趺催x擇呢昭齐?
其實(shí)尿招,如果復(fù)雜性沒(méi)有達(dá)到某種程度,僅僅是jQuery就能滿足使用要求阱驾。
然而市場(chǎng)永遠(yuǎn)瞬息萬(wàn)變就谜,在逐漸多變的業(yè)務(wù)邏輯里,漸漸開始要求頁(yè)面隨數(shù)據(jù)進(jìn)行動(dòng)態(tài)變化里覆,但數(shù)據(jù)一旦變化就會(huì)帶來(lái)大量的DOM操作丧荐,雖然有了jQuery,但還是要默默編寫大量的代碼喧枷,這樣造成數(shù)據(jù)和邏輯混雜在一起虹统,牽一發(fā)動(dòng)全身,修改一個(gè)地方會(huì)帶來(lái)很多意料之外的麻煩......
所以割去,深刻理解AngularJS和React并使用它們刻不容緩窟却,首先讓我們來(lái)談?wù)凙ngularJS和React的性能。
如同軟件開發(fā)日趨復(fù)雜化時(shí)面向?qū)ο蟮乃枷霊?yīng)運(yùn)而生一樣呻逆,AngularJS和React則將后臺(tái)開發(fā)中的一些最佳實(shí)踐應(yīng)用到了前端開發(fā)當(dāng)中夸赫,如MVVM、MVC咖城、IOC等茬腿,將復(fù)雜問(wèn)題進(jìn)行模塊化分層呼奢,這和后臺(tái)開發(fā)中所倡導(dǎo)的高內(nèi)聚松耦合的思想也是一脈相承的,由此切平,提高了代碼復(fù)用率和可測(cè)試性握础,降低了代碼復(fù)雜度。
接著悴品,在基本了解了這兩者的共同屬性后禀综,再來(lái)細(xì)細(xì)研究這兩者各自的特點(diǎn)。
【AngularJS】
AngularJS是一款優(yōu)秀的前端JS框架苔严,一定不是只有我覺(jué)得其顯著特點(diǎn)是大而全哦定枷,它集模板,數(shù)據(jù)雙向綁定届氢,路由欠窒,模塊化,服務(wù)退子,過(guò)濾器岖妄,依賴注入等所有功能于一身,簡(jiǎn)直是一路開掛的標(biāo)配啊~
而在使用的過(guò)程中寂祥,AngularJS的架構(gòu)清晰荐虐,分工明確,擴(kuò)展性良好丸凭,Model缚俏,View,Controller能將誰(shuí)在什么時(shí)候做什么事情反映得無(wú)比清晰贮乳,并且能夠讓程序員立刻專注于業(yè)務(wù)邏輯忧换,用過(guò)的表示從此深陷其中無(wú)法自拔啊~。
另外向拆,整個(gè)框架充滿了DI的思路亚茬,耦合度低。
當(dāng)然浓恳,我們都知道刹缝,AngularJS采用的是MVVM模式,很容易真正將頁(yè)面和數(shù)據(jù)邏輯分離颈将,只要在模版中聲明視圖組件是和什么狀態(tài)進(jìn)行綁定的梢夯,雙向綁定引擎便會(huì)在狀態(tài)更新的時(shí)候自動(dòng)更新視圖。
總之晴圾,AngularJS更適合企業(yè)管理系統(tǒng)的開發(fā)颂砸,按照AngularJS給出的“路線圖”,可以實(shí)現(xiàn)快速開發(fā),時(shí)效高人乓,但前端定制的靈活性上要差一些勤篮,對(duì)此有特別要求的就要稍稍掂量了~
【React】
React的偉大之處就在于提出了Virtual DOM這種新穎的思路,當(dāng)狀態(tài)發(fā)生變化時(shí)色罚,React重新渲染Virtual DOM碰缔,比較計(jì)算之后就可以給真實(shí)DOM打補(bǔ)丁了。
相比較于AngularJS戳护,React更關(guān)注UI的組件化和數(shù)據(jù)的單向更新金抡,2014提出了FLUX架構(gòu)的新概念,2015年Redux出現(xiàn)腌且,將Flux與函數(shù)式編程結(jié)合一起竟终,讓其在短時(shí)間內(nèi)迅速成為最熱門的前端架構(gòu)。
所以React的目標(biāo)是UI組件很容易理解切蟋,它通常可以和其它框架組合使用榆芦,但與AngularJS不同的是柄粹,React需要自己組合形成一個(gè)完整的框架,才能正常使用匆绣,而ANT DESIGN這樣的最佳實(shí)踐可謂神助攻驻右,讓其備受使用者青睞。
最后的最后崎淳,在安利了這么多的專業(yè)分析后堪夭,你有找到自己想要的框架style了嗎?找不到也不要緊拣凹,畢竟有些步驟對(duì)使用者的專業(yè)素質(zhì)要求甚高森爽,這個(gè)時(shí)候,寶原科技的技術(shù)流大神們瞬間六米六跋怠爬迟;但如果找到的話說(shuō)明悟性不容小覷啊菊匿!不過(guò)這篇文章所提到的也只是冰山一角付呕,你確定要失去未來(lái)不可預(yù)知的與大神們交流的機(jī)會(huì)嗎?那就請(qǐng)持續(xù)關(guān)注我們跌捆,更多精彩等你發(fā)現(xiàn)徽职!