1、出發點css
隨着Web技術的不斷髮展,前端架構框架、UI框架、構建工具、CSS預處理等層出不窮,各有千秋。太多的框架在造成初期,都曾在web領域前端
掀起過一場技術浪潮,可有些卻僅僅是曇花一現,隨着他們用戶量的逐漸減小,社區也愈來愈不活躍。如:meteor、backbone、ember、knockout。vue
不由感嘆技術的更新換代來的太忽然。爲了追趕技術更新的腳步,保證技術實施的高性能,強兼容性,而且不會再短期內被時代所遺棄。如下爲目react
前常見的主流技術參考,根據github關注度排名:webpack
架構框架git |
|||
框架名github |
技術支持web |
思想編程 |
針對性gulp |
React |
|
虛擬dom,單項數據流 |
高效建立交互式組件 |
AngularJS |
|
雙向數據綁定,指令 |
結構化 |
Vue |
Evan You(尤雨溪) |
輕量級AngularJS |
更加簡潔更易理解 |
構建工具 |
|||
工具名 |
技術支持 |
思想 |
針對性 |
Webpack |
Tobias Koppers |
模塊化處理 |
Web模塊化 |
Gulp |
/ |
基於流的自動化構建 |
Web流程化 |
Grunt |
/ |
自動化構建 |
自動化構建 |
CSS預處理 |
|||
處理器名 |
技術支持 |
思想 |
易用性 |
Sass |
/ |
基於ruby具有編程模式 |
*** |
Less |
/ |
動態化css |
***** |
2、項目需求
略
3、參考點
1.框架自身 a.是否成熟 b.架構和模式 c.生態系統
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,體積小不少。社區生態正在逐步完善,用的人相對較少,網上的資料也很少,出了問題的解決成本高。
4、決策目的
基於參考點及項目需求擇優以上web端經常使用工具及架構框架,UI框架可根據兼容性、易用性、及熟練程度選擇。
5、可選方案
web技術選型 |
||||
編號 |
框架名 |
構建工具 |
Css預處理器 |
評分 |
1 |
Angular |
Gulp/webpack |
less |
***** |
2 |
React+flux |
Webpack/gulp+webpack |
less |
*** |
3 |
Vue |
Gulp/webpack |
less |
** |
6、結論
vue相比於Angular.js,Vue.js提供了更加簡潔、更易於理解的API,使得咱們可以快速地上手並使用Vue.js。可是從另外一方面來看它卻顯得毫無新意,甚
至有點蒼白無力。AngularJS 很是結構化,大而全,雖然臃腫,可是成熟穩定。React在我看來並非一個框架,而是一種設計思想。而且它的這種思想很是
空前,甚至能夠移植到任何一個框架上,因此react和以上框架並沒有可比性,react所引領和激發的一系列開發思想,在 React 生態圈很有些百家爭鳴的感受,
各類新玩法層出不窮,所謂任重而道遠,我認爲對於react仍是靜觀其變纔好。
這裏不過多評價前端自動化構建工具和css預處理器,由於這些僅僅是工具,徹底能夠不使用或者選擇性搭配使用。只要能幫助咱們簡明、清晰、快速
的搭建web應用就足夠了。以上提到的3個框架,有種三分天下的感受。
綜上,沒有萬能的框架,更沒有萬能的技術,最適合的纔是最好的。這些只是我我的的片面的見解,但願你們有好的看法及時幫我提出來,我會在博客
中第一時間修改。謝謝你們!