web前端技術框架選型參考
一、出發點
隨著Web技術的不斷發展,前端架構框架、UI框架、構建工具、CSS預處理等層出不窮,各有千秋。太多的框架在形成初期,都曾在web領域
掀起過一場技術浪潮,可有些卻僅僅是曇花一現,隨著他們用戶量的逐漸減少,社區也越來越不活躍。如:meteor、backbone、ember、knockout。
不禁感嘆技術的更新換代來的太突然。為了追趕技術更新的腳步,保證技術實施的高性能,強兼容性,並且不會再短時間內被時代所遺棄。以下為目
前常見的主流技術參考,根據github關註度排名:
架構框架 |
|||
框架名 |
技術支持 |
思想 |
針對性 |
React |
|
虛擬dom,單項數據流 |
高效創建交互式組件 |
AngularJS |
|
雙向數據綁定,指令 |
結構化 |
Vue |
Evan You(尤雨溪) |
輕量級AngularJS |
更加簡潔更易理解 |
構建工具 |
|||
工具名 |
技術支持 |
思想 |
針對性 |
Webpack |
Tobias Koppers |
模塊化處理 |
Web模塊化 |
Gulp |
/ |
基於流的自動化構建 |
Web流程化 |
Grunt |
/ |
自動化構建 |
自動化構建 |
CSS預處理 |
|||
處理器名 |
技術支持 |
思想 |
易用性 |
Sass |
/ |
基於ruby具備編程模式 |
*** |
Less |
/ |
動態化css |
***** |
二、項目需求
略
三、參考點
1.框架自身 a.是否成熟
React 毫無疑問是現在最熱門的前端框架,React目前屬於快速發展階段,是否成熟還需時間的考量。由於 React 的設計思想極其獨特,屬於革
命性創新,性能出眾,代碼邏輯卻非常簡單。所以,越來越多的人開始關註和使用,認為它可能是將來 Web 開發的主流工具。
Angular 提供了一系列健壯的功能,以及將代碼隔離成模塊的方法,這對提高可復用性、可維護性和可測試性都是非常有益的。它的核心功能包
括MVC、模塊化、自動雙向數據綁定、語義化標簽、依賴註入等等。Angular在從開源社區火起來就一直存在於人們的視線中,超前的設計理念,強大
的生態系統,讓他一直揚帆於web框架的浪潮中,穩步前行。
Vue 的作者是位中國人,雖然vue屬於個人項目,但在簡潔、輕量、快速、數據驅動、模塊友好、組件化等方面是不輸於AngularJs的,這是因為vue
基本是在angular的設計思想上實現的庫而非框架。說起vue不得不談到它的小巧,小巧的一種好處就是可以讓用戶更自由的選擇相應的解決方案,在配合
其他庫方面它給了用戶更大的空間。Vue雖然小巧,但是“麻雀雖小五臟俱全”,在構建大型應用的時候也是得心應手。並且近幾年來vue得到了國內外多
數公司的認可,社區生態系統也日趨完善。
2.項目契合 b.是否能滿足需求 c.是否適合項目
React 對於數據邏輯方面需要操心的更少了,可以直接全量賦值。通過虛擬dom,進行dom局部更新這一點很吸引人,省去前端對數據邏輯的判斷
和操作。react目前我感覺優勢在於native相關,未來大有可玩。單純的web項目的話,學習成本相對vue來說還是很高的,react只是view還需要配合其他類
flux的框架開發。最後,使用場景上來說:React 配合嚴格的Flux架構,適合超大規模多人協作的復雜項目。
Angular 允許你構建功能強大且易於理解和維護的機構化應用程序,angular是一個為動態web應用設計的結構化框架,提供給大家一種新的開發應
用方式,這種方式可以讓你擴展HTML的語法,以彌補在構建動態WEB應用時靜態語言所體現的不足。Angular的結構化就是講究責任分離,這樣代碼才好理
解,維護和測試。
Vue 體積小,接口靈活,侵入性好,可用於頁面的一部分,而不是整個頁面。擴展性好,源碼規範簡潔。更適合手機端的WEB開發,是聲明式開發,
性能高於angular,體積小很多。社區生態正在逐步完善,用的人相對較少,網上的資料也不多,出了問題的解決成本高。
四、決策目的
基於參考點及項目需求擇優以上web端常用工具及架構框架,UI框架可根據兼容性、易用性、及熟練程度選擇。
五、可選方案
web技術選型 |
||||
編號 |
框架名 |
構建工具 |
Css預處理器 |
評分 |
1 |
Angular |
Gulp/webpack |
less |
***** |
2 |
React+flux |
Webpack/gulp+webpack |
less |
*** |
3 |
Vue |
Gulp/webpack |
less |
** |
六、結論
vue相比於Angular.js,Vue.js提供了更加簡潔、更易於理解的API,使得我們能夠快速地上手並使用Vue.js。但是從另一方面來看它卻顯得毫無新意,甚
至有點蒼白無力。AngularJS 非常結構化,大而全,雖然臃腫,但是成熟穩定。React在我看來並不是一個框架,而是一種設計思想。並且它的這種思想非常
空前,甚至可以移植到任何一個框架上,所以react和以上框架並無可比性,react所引領和激發的一系列開發思想,在 React 生態圈頗有些百家爭鳴的感覺,
各種新玩法層出不窮,所謂任重而道遠,我認為對於react還是靜觀其變才好。
這裏不過多評價前端自動化構建工具和css預處理器,因為這些僅僅是工具,完全可以不使用或者選擇性搭配使用。只要能幫助我們簡明、清晰、快速
的搭建web應用就足夠了。以上提到的3個框架,有種三分天下的感覺。
綜上,沒有萬能的框架,更沒有萬能的技術,最適合的才是最好的。這些只是我個人的片面的看法,希望大家有好的見解及時幫我提出來,我會在博客
中第一時間修改。謝謝大家!
web前端技術框架選型參考