在選擇學習Webpack以前,咱們先了解一下前端整個發展歷程。javascript
2014年初,我加入互聯網開發行業,隨沒經歷前端刀工火種的時態,5年的時間,前端技術的百家齊放非常眼花繚亂。我也從套頁面後端工程師、jquery寫效果到如今的小程序、node、vue轉變成一個純前端。如今回顧一下前端到底發生了哪些歷史變化。html
互聯網發展早期,前端只負責寫靜態頁面,純粹的展現功能,JavaScript的做用也只是增長一些特殊效果。這種靜態頁面不能讀取數據庫,爲了使Web更加充滿活力,以PHP、JSP、ASP.NET爲主的動態語言相繼誕生。
這使頁面可以獲取數據並不斷更新,是先後端混合開發模式開端,全部的前端代碼和前端數據都是後端生成的,隨着後端代碼的龐大和邏輯愈來愈複雜,相繼的MVC發展起來。這時後端大多采用MVC模式開發,前端只是後端MVC中的V(視圖);
從web的誕生到2005,一直處在_後端重前端輕_的狀態。前端
2004年AJAX技術的誕生改變了前端的發展歷史。以Gmail和Google地圖這樣革命性的產品出現,使得開發者發現,前端的做用不單單是展現頁面,能夠管理數據和用戶互動。解決一些糟糕的用戶體驗,前端頁面要想獲取後臺數據須要刷新整個頁面。
依稀記得前幾年,依託強大的Jquery,一頁面的javascript代碼使用ajax發送請求渲染DOM的情景。
前端開始慢慢向後端靠攏。vue
2009年Ryan Dahl利用Chrome的V8引擎打造了基於事件循環的異步I/O框架。
NODE的誕生,使javascript在服務端的無限可能,更重要的是它構建了一個龐大的生態系統。java
2010年1月,NPM做爲node的包管理系統首次發佈。開發人員能夠依照規範編寫nodejs模塊,發佈到npm上,供其餘開發人員下載使用。截止目前2019年6月8日,NPM包數量有1,003,262,是世界上最大的包模塊管理系統。node
Node.js 給開發人員帶來了無窮的想象,JavaScript 大有一統天下的趨勢。jquery
隨着 HTML5 小程序 的流行,前端不再是人們眼中的小玩意了,應用功能開發逐步遷移到了前端,前端的代碼邏輯逐漸變得複雜起來。
2010年10月Backbone MVP架構發佈。
2010年10月Angular MVC->MVVM
2013年05月React開源 MVVM
2014年07月Vue MVVMgit
隨着這些 MV* 框架的出現,網頁逐漸由 Web Site 演變成了 Web App,最終致使了複雜的單頁應用( Single Page Application)的出現。
隨着 SPA 的興起,2010年後,前端工程師從開發頁面(切模板),逐漸變成了開發「前端應用」(跑在瀏覽器裏面的應用程序)。github
隨着 iOS 和 Android 等智能手機的普遍使用,移動瀏覽器也逐步增強了對 HTML5 特性的支持力度。web
Web APP,即移動端的網站。通常泛指 SPA(Single Page Application)模式開發出的網站。將頁面部署在服務器上,而後用戶使用各大瀏覽器訪問,不是獨立APP,沒法安裝和發佈。
Hybrid App,即混合開發,也就是半原生半Web的開發模式,有跨平臺效果,實質最終發佈的仍然是獨立的原生APP。
React Native App,Facebook發起的開源的一套新的APP開發方案,使用JS+部分原生語法來實現功能。
May 7, 2019谷歌發佈 Flutter for web,正式宣佈 Flutter 成爲全平臺框架,支持手機、Web、桌面電腦和嵌入式設備。如今學跨平臺應用開發,第一個要看的可能不是 React Native,而是 Flutter。
今天的前端已經再也不是網頁誕生之初的樣子,天天都有新的技術框架涌現。
GitHub + NPM/BOWER + ES6/ES7/Babel/TypeScript + HTML5 + CSS3/SASS/LESS/PostCSS + React/Vue/Angular + Webpack/Browserify/Gulp/Grunt + Node.js/Express/KOA + Hybrid
這就是今天的前端。
參考:
前端發展簡史
全平臺框架 Flutter(英文)