2019年已經過去一半,前端領域有了較大的變化,是時候總結一下前端的發展變化了。
核心觀點:
- 前端三大框架已趨於平穩,標准化,向 Web Components 看齊。
- 小程序(各種平台)爆發,互聯網創業優先選擇小程序。多端受到重視,不再只是 all in mobile。
- WebAssembly 讓更多語言可以運行在瀏覽器上。
- PWA 進入穩定期,尤其是 PWA 桌面版,可以讓我們更好的看清楚 PC 桌面版開發的全貌。
- Flutter 發展較快,最大硬傷是Dart語言。RN原有的開發方式會退出歷史舞台。
- TypeScript已經慢慢成為前端的主流開發語言,將成為必備開發技能。
- 開發團隊前后端分離已經進入深水期。
- 其他:ServerLess\GraphSQL發展迅猛、D3、webgl、SVG、webpack不再是唯一的打包工具選項(Rollup、parcel零配置)、WebRTC、靜態生成、人工智能前端化
三大框架趨於一致和平穩
- Vue3.0發布
- React16版本
- Angular 8
Vue 3 的 Class API 和 React 的寫法幾乎是一模一樣,三大框架基本開始趨同,未來會更加像Web Components.
PWA 進入穩定期
PWA 和 native app(移動應用)的核心區別在於以下幾點:
-
安裝:PWA 是一個不需要下載安裝即可使用的應用。
-
緩存使用:native app 主要是對 sqlite 緩存,以及文件讀寫操作,而 PWA 對緩存數據庫操作支持的非常好,足以應對各種場景。
-
基本能力補齊,比如推送。
現在 PWA 已經支持的很好了,唯一麻煩的是緩存策略和發版比較麻煩,應用輕量化的趨勢已經很明朗了
小程序火爆
如果說和 PWA 比較像的,大概就是小程序了,小程序也可以說是今年最火的技術。

微信小程序的下一步計划,支持 NPM、小程序雲、可視化編程、支持分包等,聽起來很美好,但坑依然不少。小程序原生提供的 DSL 不夠好用,所以就有了上層開發框架或者腳手架來優化開發效率,目前比較主流的有 3 個:

今年還冒出了微信小程序之外的頭條小程序、支付寶小程序、百度智能小程序等,未來還會有很多。同時,手機廠商大概是看到了小程序對其應用商店的威脅,小米、華為、OPPO、vivo 等九大國內手機廠商聯手成立了“快應用聯盟”,基於 react-native 技術棧,整體也很不錯,尤其是天貓調用菜鳥裹裹的快應用,安卓下有非常好的體驗。相較而言,微信是基於 Webview 的,而快應用使用的是原生渲染方案,其他家也大抵如此。
WebAssembly
WebAssembly 是一種新的字節碼格式,目前主流瀏覽器都已經支持 WebAssembly。 和 JS 需要解釋執行不同的是,WebAssembly 字節碼和底層機器碼很相似,可以快速裝載運行,因此性能相對於 JS 解釋執行而言有了極大的提升。 也就是說 WebAssembly 並不是一門編程語言,而是一份字節碼標准,需要用高級編程語言編譯出字節碼放到 WebAssembly 虛擬機中才能運行, 瀏覽器廠商需要做的就是根據 WebAssembly 規范實現虛擬機。
移動端
Flutter 是 Google 推出的幫助開發者在 Android 和 iOS 兩個平台,同時開發高質量原生應用的全新移動 UI 框架,和 React-native/Weex 一樣支持熱更新。Flutter 使用 Google 自己家的 Dart 語言編寫,剛好今年 Dart 2 也正式發布,不知道二者之間是否有關聯。目前 Dart 主攻 Flutter 和 Web 兩塊,同時提供了 pub 包管理器,儼然是一門全新的語言,學習成本有些高。反觀 TypeScript 就非常容易被接受,基於 npm 生態,兼容 ES 語法
TypeScript
強大的靜態編譯能力,讓JavaScript編程更上一層樓,尤其是大團的開發,簡直是利器。
原生支持ES6、對各個框架的支持度都完美契合。2019年是TS的爆發年。
總結
進入2019年,前端發展進入深水區,不再是開發的附庸,前端將會是未來開發的主力,技術變化也將風起雲涌,對於初學前端小伙伴們,選擇一個具備國際視野和開發趨勢的老師是非常重要的。有興趣的小伙伴可以看一下老馬親帶的AICODER程序員全棧培訓。