新聞中心
作為一個軟件開發(fā)者,***的挑戰(zhàn)就是在不斷涌現(xiàn)的新技術(shù)中進(jìn)行取舍,持續(xù)學(xué)習(xí)是從事這一行業(yè)的必備技能。在這個領(lǐng)域里,技術(shù)更新最快地又非前端莫屬了。各種框架的出現(xiàn)、版本的更新此起彼伏,呈現(xiàn)出一派欣欣向榮之景。

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出安陽縣免費(fèi)做網(wǎng)站回饋大家。
在項(xiàng)目中必不可少的便是前端,它是系統(tǒng)的門面、是用戶對系統(tǒng)最直接的體驗(yàn),顏值高低也是決定系統(tǒng)好壞的關(guān)鍵,那么作為一名軟件開發(fā)攻城獅,怎么能放棄這片藍(lán)海呢?沒準(zhǔn)了解了解前端的世界,就能多一項(xiàng)技能、升職加薪、贏取白(gao)富(fu)美(shuai)、走向人生***呢?
那么,在一個項(xiàng)目中,我們要回答的***個問題就是“這么多的框架,該使用哪一個?”這篇文章將嘗試從項(xiàng)目實(shí)施相關(guān)方面入手,對目前大熱框架的特點(diǎn)進(jìn)行分析,幫助你選擇最合適的一款。
由于篇幅有限、框架眾多,在分析之前,我們從版本更新頻度和社區(qū)活躍度來進(jìn)行初步的篩選。已經(jīng)出現(xiàn)了比較久的Backbone和Knockout, 目前流行度正在持續(xù)衰退,說明市場已經(jīng)做出了選擇,市面上出現(xiàn)了更有競爭力的替代品; 還有aurelia這類的新涌現(xiàn)者,需要等待時間的檢驗(yàn)。
但是在一個商業(yè)項(xiàng)目中,一個有活躍社區(qū)支撐,并能得到長期支持的框架無疑能給我們更大的信心。因此,Angular, Ember,Vue或者React都是理想的選擇。
那么在項(xiàng)目實(shí)施中,我們一般會關(guān)注哪些方面呢?
有過前端開發(fā)經(jīng)驗(yàn)的同僚們可能會想到:要有可復(fù)用的組件,要控制質(zhì)量做測試和靜態(tài)檢查,要有組件隔離的樣式方便實(shí)現(xiàn)Responsive,要打包部署方便,***學(xué)起來不要太復(fù)雜,方便能力建設(shè)、節(jié)省招聘成本等等。
接下來,我們將從組件復(fù)用、測試和學(xué)習(xí)曲線這三個主要的方面對Angular4,Ember.js,Vue.js和React這四個當(dāng)前***的框架來做更深入的分析,提供更具體的參考。
1. 可復(fù)用的組件
組件復(fù)用是每個項(xiàng)目都會重點(diǎn)關(guān)注的一個維度。合適的、職責(zé)單一的組件會大大提升新特性的開發(fā)效率和工程的可維護(hù)性,也能方便地進(jìn)行測試。那么他們的表現(xiàn)都如何呢:
概括起來,就是Vue、Component的組件相對靈活、輕量,添加依賴就可以無縫集成到遺留系統(tǒng)中。對于從0到1的系統(tǒng),也可以使用新的實(shí)踐來構(gòu)建工程,例如ES6、Webpack等技術(shù)。Angular4官方推薦使用TypeScript,這需要單獨(dú)構(gòu)建和打包,不方便與遺留系統(tǒng)集成。Ember.js自定義了一整套生態(tài),基于CoC理念的設(shè)計,采用了前端工程中比較前沿的實(shí)踐和標(biāo)準(zhǔn),很難與遺留系統(tǒng)集成,更適合在新項(xiàng)目中使用。至于數(shù)據(jù)綁定,各有優(yōu)勢。雙向綁定在表單交互多的場景中更便捷,單向綁定在管理跟蹤記錄組件狀態(tài)時更高效。組件狀態(tài)更新,各有不同的實(shí)現(xiàn):
- Vue2.js通過定義setter來監(jiān)聽狀態(tài)變化,特殊場景需要特殊的API支持, 基于virtual DOM的視圖更新。
- React在組件的狀態(tài)或?qū)傩缘淖兓?,也是基于virtual DOM的視圖更新。
- Angular4在引起狀態(tài)變化的時刻,框架自動觸發(fā)臟檢查,也可以手動執(zhí)行臟檢查,直接操作HTML DOM更新視圖。
- Ember.js提供數(shù)據(jù)模型,所有數(shù)據(jù)的操作通過API執(zhí)行,使用Glimmer引擎進(jìn)行HTML渲染和更新。
其中,主要的區(qū)別是Angular4是通過事件監(jiān)聽,對比數(shù)據(jù)更新,直接操作DOM來更新視圖,而其它都通過Virtual DOM的思路來更新視圖。
2. 組件測試
測試是提高軟件質(zhì)量的有效手段,易于編寫測試的框架,能降低編寫測試的成本,充足的測試也能提高我們交付軟件的信心。它們在組件測試方面的比較如下:
可見,Vue, React測試靈活,可以根據(jù)項(xiàng)目具體情況來定制,但是沒有統(tǒng)一的測試實(shí)踐規(guī)范,對開發(fā)人員的能力有較大依賴。Angular4和Ember概念多,有官方推薦的實(shí)踐,要完全掌握難度大,優(yōu)勢是實(shí)現(xiàn)起來更規(guī)范。
3. 學(xué)習(xí)曲線
在技術(shù)選型過程中,保證項(xiàng)目按時交付,控制風(fēng)險,團(tuán)隊(duì)能力建設(shè)提升,都是需要考慮的因素。作為一個軟件服務(wù)公司,如何快速的提升人員能力,選用學(xué)習(xí)曲線合適的框架,控制項(xiàng)目成本也是一門技術(shù)活。下面,對使用這些框架的難度進(jìn)行了一些簡要分析:
總結(jié)
通過上面三個維度的分析,我們發(fā)現(xiàn)Vue.js和React的重點(diǎn)更側(cè)重于創(chuàng)建可復(fù)用、易于測試、能靈活集成的組件。當(dāng)然,通過其它擴(kuò)展組件,以及一些腳手架插件的支持,也可以方便的搭建一個采用***實(shí)踐的前端應(yīng)用的構(gòu)建框架。它們***的優(yōu)點(diǎn)是按需定制,學(xué)習(xí)曲線平滑,構(gòu)建出來的應(yīng)用小而精。
相對來說,Angular4和Ember是大而全的框架,它們更側(cè)重于大型前端工程的構(gòu)建,為開發(fā)人員屏蔽項(xiàng)目構(gòu)建底層的細(xì)節(jié),提出了自己的一套解決方案。使用它們的難點(diǎn)是要度過前期曲線陡峭的學(xué)習(xí)期,優(yōu)點(diǎn)是由于使用了標(biāo)準(zhǔn)化的開發(fā)方式,后期能極大的提高開發(fā)生產(chǎn)力,提升開發(fā)效率。
***,說了這么多,大家在具體選型時還是要首先分析自己的需求和現(xiàn)狀,然后再做選擇。不求最酷炫,只求最合適!
【本文是專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號:思特沃克,轉(zhuǎn)載請聯(lián)系原作者】
戳這里,看該作者更多好文
當(dāng)前文章:前端框架這么多,該何去何從?
文章起源:http://m.fisionsoft.com.cn/article/dhscgio.html


咨詢
建站咨詢
