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程序员全栈培训。