前端框架的選擇——前端各大框架特點的分析
作為一個軟體開發者,最大的挑戰就是在不斷湧現的新技術中進行取捨,持續學習是從事這一行業的必備技能。在這個領域裡,技術更新最快地又非前端莫屬了。各種框架的出現、版本的更新此起彼伏,呈現出一派欣欣向榮之景。
在專案中必不可少的便是前端,它是系統的門面、是使用者對系統最直接的體驗,顏值高低也是決定系統好壞的關鍵,那麼作為一名軟體開發攻城獅,怎麼能放棄這片藍海呢?沒準瞭解瞭解前端的世界,就能多一項技能、升職加薪、贏取白(gao)富(fu)美(shuai)、走向人生巔峰呢?
那麼,在一個專案中,我們要回答的第一個問題就是“這麼多的框架,該使用哪一個?”這篇文章將嘗試從專案實施相關方面入手,對目前大熱框架的特點進行分析,幫助你選擇最合適的一款。
由於篇幅有限、框架眾多,在分析之前,我們從版本更新頻度和社群活躍度來進行初步的篩選。已經出現了比較久的Backbone和Knockout, 目前流行度正在持續衰退,說明市場已經做出了選擇,市面上出現了更有競爭力的替代品; 還有aurelia這類的新湧現者,需要等待時間的檢驗。
但是在一個商業專案中,一個有活躍社群支撐,並能得到長期支援的框架無疑能給我們更大的信心。因此,Angular, Ember,Vue或者React都是理想的選擇。
那麼在專案實施中,我們一般會關注哪些方面呢?
有過前端開發經驗的同僚們可能會想到:要有可複用的元件,要控制質量做測試和靜態檢查,要有元件隔離的樣式方便實現Responsive,要打包部署方便,最好學起來不要太複雜,方便能力建設、節省招聘成本等等。
接下來,我們將從元件複用、測試和學習曲線這三個主要的方面對Angular4,Ember.js,Vue.js和React這四個當前最流行的框架來做更深入的分析,提供更具體的參考。
1. 可複用的元件
元件複用是每個專案都會重點關注的一個維度。合適的、職責單一的元件會大大提升新特性的開發效率和工程的可維護性,也能方便地進行測試。那麼他們的表現都如何呢:
概括起來,就是Vue、Component的元件相對靈活、輕量,新增依賴就可以無縫整合到遺留系統中。對於從0到1的系統,也可以使用新的實踐來構建工程,例如ES6、Webpack等技術。Angular4官方推薦使用TypeScript,這需要單獨構建和打包,不方便與遺留系統整合。Ember.js自定義了一整套生態,基於CoC理念的設計,採用了前端工程中比較前沿的實踐和標準,很難與遺留系統整合,更適合在新專案中使用。至於資料繫結,各有優勢。雙向繫結在表單互動多的場景中更便捷,單向繫結在管理跟蹤記錄元件狀態時更高效。元件狀態更新,各有不同的實現:
如果你想學習前端可以來這個群,首先是二九一,中間是八五一,最後是一八九,裡面可以學習和交流,也有資料可以下載。
-
Vue2.js通過定義setter來監聽狀態變化,特殊場景需要特殊的API支援, 基於virtual DOM的檢視更新。
-
React在元件的狀態或屬性的變化後,也是基於virtual DOM的檢視更新。
-
Angular4在引起狀態變化的時刻,框架自動觸發髒檢查,也可以手動執行髒檢查,直接操作HTML DOM更新檢視。
-
Ember.js提供資料模型,所有資料的操作通過API執行,使用Glimmer引擎進行HTML渲染和更新。
其中,主要的區別是Angular4是通過事件監聽,對比資料更新,直接操作DOM來更新檢視,而其它都通過Virtual DOM的思路來更新檢視。
2. 元件測試
測試是提高軟體質量的有效手段,易於編寫測試的框架,能降低編寫測試的成本,充足的測試也能提高我們交付軟體的信心。它們在元件測試方面的比較如下:
可見,Vue, React測試靈活,可以根據專案具體情況來定製,但是沒有統一的測試實踐規範,對開發人員的能力有較大依賴。Angular4和Ember概念多,有官方推薦的實踐,要完全掌握難度大,優勢是實現起來更規範。
3. 學習曲線
在技術選型過程中,保證專案按時交付,控制風險,團隊能力建設提升,都是需要考慮的因素。作為一個軟體服務公司,如何快速的提升人員能力,選用學習曲線合適的框架,控制專案成本也是一門技術活。下面,對使用這些框架的難度進行了一些簡要分析:
總結
通過上面三個維度的分析,我們發現Vue.js和React的重點更側重於建立可複用、易於測試、能靈活整合的元件。當然,通過其它擴充套件元件,以及一些腳手架外掛的支援,也可以方便的搭建一個採用最新實踐的前端應用的構建框架。它們最大的優點是按需定製,學習曲線平滑,構建出來的應用小而精。
相對來說,Angular4和Ember是大而全的框架,它們更側重於大型前端工程的構建,為開發人員遮蔽專案構建底層的細節,提出了自己的一套解決方案。使用它們的難點是要度過前期曲線陡峭的學習期,優點是由於使用了標準化的開發方式,後期能極大的提高開發生產力,提升開發效率。
最後,說了這麼多,大家在具體選型時還是要首先分析自己的需求和現狀,然後再做選擇。不求最酷炫,只求最合適!
相關文章
- Signal:更多前端框架的選擇前端框架
- Car2go 的前端框架選擇Go前端框架
- 如何選擇前端框架:ANGULARVSEMBERVSREACT前端框架AngularReact
- 前端技術框架選型,跨端框架盤點前端框架跨端
- 前端框架選型前端框架
- 當下的前端框架和未來前端框架對比前端框架
- 前端框架前端框架
- 前端框架你究竟選什麼前端框架
- 關於前端框架的一些觀點前端框架
- 對比和分析幾個流行的前端框架前端框架
- 前端框架_Vue前端框架Vue
- 前端web框架前端Web框架
- 前端框架模式的變遷前端框架模式
- 前端框架存在的意義前端框架
- 前端MV*框架的意義前端框架
- 盤點8款最小的JavaScript前端開發框架JavaScript前端框架
- 前端框架開發之Niu框架——從零學框架的小白前端框架
- 如何進行框架的選擇框架
- 手把手擼套框架-ORM框架的選擇框架ORM
- layUI前端框架使用詳解_layUI前端框架最新最完整UI前端框架
- 談,前端框架的『御劍之道』前端框架
- 20個優秀的前端框架前端框架
- 2024流行的前端框架前端框架
- 為什麼我不選擇React、Vue.js作為SAAS網站的前端框架ReactVue.js網站前端框架
- 一文搞定:前端如何選擇Angular、React和Vue三大主流框架前端AngularReactVue框架
- 前端框架——記錄前端框架
- 前端測試框架前端框架
- 前端學習框架前端框架
- 前端框架react研究前端框架React
- [譯]2020 年用各大前端框架構建的 RealWorld 應用對比前端框架架構
- web前端三大主流框架對比分析Web前端框架
- 我們是如何選擇框架的?框架
- 框架選擇的7個原則框架
- 設計方案系列-如何看待前端框架選型 ?前端框架
- 排名前10的vue前端UI框架框架值得你掌握Vue前端UI框架
- [譯]2017年了,這麼多前端框架,你會怎樣選擇?前端框架
- [譯] 2017 年了,這麼多前端框架,你會怎樣選擇?前端框架
- 基於 iframe 的微前端框架 —— 擎天前端框架