2019年已通過去一半,前端領域有了較大的變化,是時候總結一下前端的發展變化了。前端
核心觀點:react
Vue 3 的 Class API 和 React 的寫法幾乎是如出一轍,三大框架基本開始趨同,將來會更加像Web Components.webpack
PWA 和 native app(移動應用)的核心區別在於如下幾點:程序員
安裝:PWA 是一個不須要下載安裝便可使用的應用。web
緩存使用:native app 主要是對 sqlite 緩存,以及文件讀寫操做,而 PWA 對緩存數據庫操做支持的很是好,足以應對各類場景。sql
基本能力補齊,好比推送。數據庫
如今 PWA 已經支持的很好了,惟一麻煩的是緩存策略和發版比較麻煩,應用輕量化的趨勢已經很明朗了npm
若是說和 PWA 比較像的,大概就是小程序了,小程序也能夠說是今年最火的技術。編程
微信小程序的下一步計劃,支持 NPM、小程序雲、可視化編程、支持分包等,聽起來很美好,但坑依然很多。小程序原生提供的 DSL 不夠好用,因此就有了上層開發框架或者腳手架來優化開發效率,目前比較主流的有 3 個:小程序
今年還冒出了微信小程序以外的頭條小程序、支付寶小程序、百度智能小程序等,將來還會有不少。同時,手機廠商大概是看到了小程序對其應用商店的威脅,小米、華爲、OPPO、vivo 等九大國內手機廠商聯手成立了「快應用聯盟」,基於 react-native 技術棧,總體也很不錯,尤爲是天貓調用菜鳥裹裹的快應用,安卓下有很是好的體驗。相較而言,微信是基於 Webview 的,而快應用使用的是原生渲染方案,其餘家也大抵如此。
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 語法
強大的靜態編譯能力,讓JavaScript編程更上一層樓,尤爲是大團的開發,簡直是利器。
原生支持ES六、對各個框架的支持度都完美契合。2019年是TS的爆發年。
進入2019年,前端發展進入深水區,再也不是開發的附庸,前端將會是將來開發的主力,技術變化也將風起雲涌,對於初學前端小夥伴們,選擇一個具有國際視野和開發趨勢的老師是很是重要的。有興趣的小夥伴能夠看一下老馬親帶的AICODER程序員全棧培訓。