2017年最主流的三個WEB前端開發框架莫過於AngularJS、React以及Vue.js了,然而在實際的運用中,這三者卻不盡相同,對於沒有AngularJS和React經驗的團隊且遇上規模不大的前端項目來說,Vue.js因其容易上手會被列為首選;而由於AngularJS和React解決的是同一個領域的問題,即Web前端應用,或者更確切的說是日益複雜的前端應用。那麼,面對如此複雜的兩個前端框架,我們該怎麼選擇呢?
其實,如果複雜性沒有達到某種程度,僅僅是jQuery就能滿足使用要求。
然而市場永遠瞬息萬變,在逐漸多變的業務邏輯里,漸漸開始要求頁面隨數據進行動態變化,但數據一旦變化就會帶來大量的DOM操作,雖然有了jQuery,但還是要默默編寫大量的代碼,這樣造成數據和邏輯混雜在一起,牽一髮動全身,修改一個地方會帶來很多意料之外的麻煩......
所以,深刻理解AngularJS和React並使用它們刻不容緩,首先讓我們來談談AngularJS和React的性能。
如同軟體開發日趨複雜化時面向對象的思想應運而生一樣,AngularJS和React則將後台開發中的一些最佳實踐應用到了前端開發當中,如MVVM、MVC、IOC等,將複雜問題進行模塊化分層,這和後台開發中所倡導的高內聚松耦合的思想也是一脈相承的,由此,提高了代碼復用率和可測試性,降低了代碼複雜度。
接著,在基本了解了這兩者的共同屬性后,再來細細研究這兩者各自的特點。
【AngularJS】
AngularJS是一款優秀的前端JS框架,一定不是只有我覺得其顯著特點是大而全哦,它集模板,數據雙向綁定,路由,模塊化,服務,過濾器,依賴注入等所有功能於一身,簡直是一路開掛的標配啊~
而在使用的過程中,AngularJS的架構清晰,分工明確,擴展性良好,Model,View,Controller能將誰在什麼時候做什麼事情反映得無比清晰,並且能夠讓程序員立刻專註於業務邏輯,用過的表示從此深陷其中無法自拔啊~。
另外,整個框架充滿了DI的思路,耦合度低。
當然,我們都知道,AngularJS採用的是MVVM模式,很容易真正將頁面和數據邏輯分離,只要在模版中聲明視圖組件是和什麼狀態進行綁定的,雙向綁定引擎便會在狀態更新的時候自動更新視圖。
總之,AngularJS更適合企業管理系統的開發,按照AngularJS給出的「路線圖」,可以實現快速開發,時效高,但前端定製的靈活性上要差一些,對此有特別要求的就要稍稍掂量了~
【React】
React的偉大之處就在於提出了Virtual DOM這種新穎的思路,當狀態發生變化時,React 重新渲染 Virtual DOM,比較計算之後就可以給真實 DOM 打補丁了。
相比較於AngularJS,React更關注UI的組件化和數據的單向更新,2014提出了FLUX架構的新概念,2015年Redux出現,將 Flux與函數式編程結合一起,讓其在短時間內迅速成為最熱門的前端架構。
所以React的目標是UI組件很容易理解,它通常可以和其它框架組合使用,但與AngularJS不同的是,React需要自己組合形成一個完整的框架,才能正常使用,而ANT DESIGN這樣的最佳實踐可謂神助攻,讓其備受使用者青睞。