在react 、 vue 、ng 這些框架火起來之前,是哪些框架比較火?它們現在怎麼樣了?

總不可能這些東西就是第一批前端框架,那麼之前的那些框架呢? 它們的擁躉者呢? 這些東西現狀如何了。。

對了,只談歷史,不談信仰。


react 2013 年發布,到 2014 年逐漸熱門。 vue 在 2014 年初發布。angular 其實早很多,記得是 2009 年,只是門檻太高不是前端普遍能啃的。 backbone 好像也是 2009 年的。我是 2013 年實習開始寫 backbone 應用,逐漸接觸到 ractive 和 emberjs 那些,還有 knockout。backbone 當時是模板引擎生成字元串做 dom 局部更新,跟 angular 那樣的 data binding 有不小的差距,但是也逐漸知道 knockout 能做類似的事情。當時看來 ractive 只是做模板引擎的自動更新,在靈活性和搭配上最好,大致是 2013 年。不過到 react 和 vue 流行開來,早先的方案就嫌啰嗦了。


簡單介紹一下自己對前端發展的認知吧。

石器時代

  • 刀耕火種,簡單的 HTML 和簡單的 JavaScript 腳本,可能是純靜態的頁面
  • 結合服務端的混合開發模式,如JSP、ASP和PHP相關的一些頁面技術蓬勃發展

這個時候的前端開發實際上話語權很低,重點還是放在服務端,展示層的邏輯和交互都很簡單。

鐵器時代

Ajax 技術的廣泛應用,讓前端開發進入了一個新紀元

  • 像 jQuery 這樣高度封裝的 JavaScript 基礎庫,專註 DOM 操作,使用非常友好,同時屏蔽了很多令人頭疼的瀏覽器兼容性,很長一段時間接管了前端開發。它的生態比較完善,比如jQuery UI這樣的控制項庫,jQuery mobile這樣的移動開發庫。
  • 還有一些工具類的 JavaScript 庫,如 underscore 和 loadsh 等等,對 JavaScript 原生不具備的功能進行一些拓展,像一個工具包。
  • 動態載入 JavaScript 的技術出現,比如遵循 AMD 規範的 RequireJS,可以更好的去分擔複雜應用中資源載入的壓力。
  • ExtJS 一個很特殊的存在,了解不多,大家可以自行查閱資料。

第一次工業革命

隨著瀏覽器的不斷強大和 Web 應用日益複雜的功能需要,需要有新的技術來更好的對前端模塊進一步解耦,業務數據如何組織以及和 UI 之間如何交互,就成了現在的主題。在這樣的背景下出現了許多 MV* 框架來解決上述問題。

  • 早期的 Backbone,Ember
  • 中期的 AngularJS
  • 主流的 Angular、Vue.js 和 React

無論是什麼框架,目的都是為了解決前端開發中的一些痛點,更好的去解耦邏輯,增加代碼的可維護性。從這一點上來說,各個框架都是為了前端技術發展而作出貢獻,沒有孰優孰劣。

新的可能

  • Node.js 的出現大大拓展了前端的疆域,我理解的 Node.js 他最大的價值不在於服務端編程,而是在於帶給前端的一整套完善的工具鏈和蓬勃發展的社區。方便的 NPM 包管理器,各種自動化工具、測試工具的產出,大大提高了前端開發的效率和質量。
  • ES6/7 規範的制定和推廣,是 JavaScript 不斷完善的一個標誌,有理由去期待 JavaScript 的成長。

最後的一點碎碎念

  • 前端社區還是顯得太浮躁,我也經常戲稱「前端娛樂圈」,大家經常為了一個框架的使用和技術細節撕的不可開交,反而忽略了這些框架的初衷和解決的痛點。
  • 技術並沒有絕對的好壞,技術的選型也不僅僅限於技術的新和先進。更多時候,根據自己的業務,選擇適合自己團隊的、能夠穩定運行和創造價值的技術,才是真正好的技術。

答主接觸前端開發只有1年半的時間,很多想法可能還是比較稚嫩,歡迎各位大大斧正。和諧的交流才能碰撞出更多有意義的火花。


個人發展路線是jquery (ext) knockout (angular1) avalon vue

()表示有簡單了解

不過因為我還有其他一條線 winform wpf asp.net webform/mvc4

所以我接受mvvm還算比較快,很順利的就上手了avalon 。

其實如果熟悉客戶端mvc mvp mvvm的演進過程,再來看現在的前端框架,真沒多少新鮮事。

前端框架的演進,我認為應該是要結合前端工程的發展來看,比如前後分離,大前端,多端跨平台等。

兩者相互促進,工具的完善推動工程的演化,工程的演化又對工具提出了更多的要求。

在這個螺旋上升的過程中,跟不上節奏的工具或者思想,自然是被淘汰了。


本人略長,涉及的不僅僅是瀏覽器端應用開發,可以粗略掃過,下拉到文末。大神請輕拍~

一、軟體形態

1、單機應用:一般而言,在單機上可以完整提供軟體服務的應用,就可以稱為單機應用。單機遊戲、Office系列、Adobe系列等等。

2、網路應用:一般而言,在安裝在單機上的客戶端與遠程伺服器端聯合才能提供完整提供軟體服務。郵件應用、雲儲存應用、即時通訊工具、下載工具等等。

3、命令行應用:採用了字元界面的人機交互設計,既有單機應用,也有網路應用。

4、圖形界面應用:採用了圖形化的人機交互設計,既有單機應用,也有網路應用。

二、什麼是前端、後端?

1、所謂的前後,意指互聯網的客戶端和伺服器端。

一般而言,命令行應用開發不強調前端、後端之分。故而,此處涉及的前端、後端指的是圖形界面應用。在萬維網興起後,迎來了瀏覽器的時代。前端、後端擁有了更多的涵義。

(1)前端:通過安裝包安裝在本地運行的桌面軟體、命令行 或者 通過計算機網路下載到本地瀏覽器顯示的Web應用,也稱客戶端。

[1] PC操作系統應用的前端:Linux、MacOS、Windows

[2] 移動設備操作系統應用的前端:Android、iOS

[3] 瀏覽器的前端。

PS:目前,前端的主流語義往往指向瀏覽器的前端。

PS:上述操作系統排序按照字典序排序。

(2)後端:通過計算機網路為客戶端提供數據存儲、分析、轉發等服務的軟體,也稱伺服器端。

[1] 傳輸層:TCP、UDP等等

[2] 應用層:HTTP、FTP、SMTP等等

三、前端開發框架:編程語言 + GUI框架

1、桌面應用前端開發:部分列舉,歡迎補充。

(1)C GTK

(2)C++ Qt

(3)JAVA Swing

(4)C# WPF

2、Web應用前端開發:JavaScript + GUI框架(UI框架主要在於藝術理念,不在時間軸上討論UI框架)

(0)無框架時期:JavaScript + HTML / CSS。設計圖出好後,開始切圖,開始手工布局,手工配色,完成靜態頁面;JavaScript驗證表單,在實現簡單的特效。

(1)第一次前端框架潮流:

JavaScipt框架:jQuery是弄潮兒。10-12年前的前端技術中,百舸爭流。jQuery、Dojo、YUI、Prototype,可以說是當年的佼佼者。在工程實踐中,開發者用腳投票,jQuery獲得了最終的勝利,成為事實的前端工程開發的標準,形成了極為豐富的技術生態環境,歷久彌新。編寫jQuery插件,一度成為當年的技術簡歷亮點。

(2)第二次前端框架潮流:Angular.js是弄潮兒。6-7年前的前端技術中,推陳出新。演化出了第二代前端框架,Angular.js、Knockout.js、Ember.js、Backbone.js、Avalon.js……在工程實踐中,開發者用腳投票,Angular.js這麼多年來熱度不減,被廣泛使用,形成了極為豐富的技術生態環境。演化出了Ionic這樣的跨平台開發神器~

(3)第三次前端框架潮流:虛位以待弄潮兒。3-4年前的前端技術中,React、Vue應運而生。Angular、React、Vue成為前端框架三巨頭。未來就交給時間,期待最終脫穎而出的明日之星!


只論框架(或者被當作框架來用的):

YUI -- jQuery -- Backbone -- Knockout -- Angular.js -- React/Vue/Angular

更早的就不清楚了

還有,把Knockout放進來只是因為我所在的公司還在用,捂臉逃^-^


dojo應該算一個吧,不過近兩年出道的前端工程師可能沒怎麼聽過這個框架了,除非他們公司有從業較久並擁有話語權的前端開發者在主導這個框架。

不過dojo的學習曲線比較陡峭,對開發者本身的要求可能會相對高些,所以我司目前只用了dojo的一部分特性,其他的還是按自己熟悉的來,比如jquery,搞得甚是凌亂,所以,在公司內部主導一門框架的話,還是多少要考慮部門的水平和框架的上手程度的,畢竟不是你一個人在維護。

不過使用過老框架也導致了一些問題,就是這個東西你會了也沒什麼競爭力,其他公司都不用這個,如果你工資高點,可能大家會努力配的上自己的工資,像我司的前端工資那麼低,能熟練掌握dojo的人,意味著技能還行,還不如拿這個時間學習一下其他的,準備跳槽呢!


據我所知,React、Vue 和 Angular 之前,最火的框架應該是ExtJs,雖然當時Easy UI也有一定競爭力。ExtJs之前比較火的是YUI,但YUI一直沒有被多數人接受。還有一個很奇葩的,到現在還是半死不活的框架Dojo。


個人認為火的是knockout


我想說Extjs 可否一戰?


前端框架最近幾年層出不窮,我認為最重要的還是理解為什麼出來這些框架,這些框架解決了什麼痛點,框架是如何解決的,學習這種解決思路比單純框架使用本身及他們的發展更重要。


backbone,之前是單頁應用主流的開發框架,一直想看一下它的代碼。


時代在發展,沒什麼東西能一直存在,更別談什麼前段框架了,所以你需要關心的是現在流行什麼框架,以後會需要什麼框架


推薦閱讀:

Vue、React和Angular 2.x,誰是2016年的主流?
vue,react之類的框架是不是弱化了對前端人員js水平的要求?
為什麼到2017年7月,知乎上已經很少見到討論angular了?
關於『餓了么的PWA升級實踐』中『採用傳統的頁面跳轉』這一問題?

TAG:前端開發 | JavaScript | 編程 | React | Vuejs |