1)TypeScript
- 代码更容易理解
- 更容易,更快的实现代码
- 代码容易重构
2)WebAssembly (WASM)
运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。
我们可以用自己喜欢的语言来编写,然后将其编译成 WASM 文件,以便在浏览器中运行。WebAsssembly 目前支持的语言有 C/c++、Elixir、Python、Go、c#/.Net 和 Java。
优势:
- 二进制文件比 JavaScript 文本文件小得多。因而下载速度更快;
- WebAssembly 的解析和执行速度也更快;
- 可移植性。使用 WebAssembly ,只需要一次编译,您的应用程序将可以在每个现代浏览器中运行;
- 灵活性。使用 WebAssembly,Web开发人员将能够选择其他语言,更多的开发人员将能够为 Web应用 编写代码。
3)渐进式WEB应用(PWA)
一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用.随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能.能够模拟一些原生功能,比如通知推送基于浏览器后台,替代app。
- 使用多种技术来增强web app的功能,可以让网站的体验变得更好,能够模拟一些原生功能;
- 利用最新的技术将网页和移动应用程序结合起来。可以把 PWA 想成一个使用 web 技术的网站,但是行为和感觉是一个应用程序(APP);
- 可以让网站的体验变得更好,能够模拟一些原生功能,比如通知推送;
- 由于本质上是网页,PWAs 不能使用大多数硬件功能,如 NFC 和蓝牙。
4) 微前端
是一种软件架构,可以将前端应用拆解成一些更小的能够独立开发部署的微型应用。然后再将这
些微应用进行组合使其成为整体应用的架构模式,类似于组件架构。但不同的是,组件不能独立构建和发布,但是微前端中的应用是可以的。微前端架构与框架无关,每个微应用都可以使用不同的框架。还需要一个容器。
5)Serveless
就是数据库放在云服务器,前端通过云函数编写直接获取操作数据。
6)BFF
就是为前端服务的后端,可以只用一个后端基础接口针对不同设备写不同的接口,也可以整合多个后端基础接口供前端专门使用。
问题:服务端设计的接口究竟是面向UI,还是面向通用服务?
- 多端应用,不同类型客户端对数据、API有个性化的需求
- 服务聚合,单一后端为多个前端团队提供接口,导致跨团队协作低效,资源协调困难
解决方案: Backends For Frontends, 简称BFF。
BFF最适合的场景,为第三方提供定制API等差异化场景,每个客户端对应一个后端。
BFF理念中,最重要的一点是:服务自治,谁使用谁开发,所以一般由前端维护。
BFF实现不限制具体技术,可以自由选型:Java/Node/PHP/Python,但大部分前端团队都会选择Node.js。
BFF 和 Serveless详细介绍参考: