2019年的大前端领域虽然并没有出现什么颠覆性技术,但是Flutter、WebAssembly、Serverless的火爆发展还是超乎我们预期,也让我们进一步看到大前端的融合趋势。
在已经复工的2020年,大前端领域又有哪些你不能错过的顶级技术趋势呢?今天就跟小编一起来看看吧~
TypeScript
TypeScript 是一门基于 JavaScript 基础之上的编程语言,很多时候我们都在说它是一个 JavaScript 的超集,或者叫扩展集。所谓超集,其实就是在 JavaScript 原有的基础之上多了一些扩展特性。多出来的呢,实际上就是一套更强大的类型系统,以及对 ECMAScript 新特性的支持。而且它最终会编译为原始的 JavaScript。
这也就是说,使用 TypeScript 过后,我们开发者在开发过程中可以直接使用 TypeScript 所提供的新特性,以及 TypeScript 中更强大的类型系统去完成开发工作。然后将其编译为能在生产环境直接运行的 JavaScript 代码。
那它的作用也就很明显了。类型系统优势我们已经有所体会,就是帮我们避免开发过程中有可能的类型异常,提高编码的效率,以及代码的可靠程度。新特性支持也不用多说。ECMAScript 几年迭代了很多非常有用的新功能,但是在很多成就的环境中都有兼容问题。TypeScript 支持自动转换这些新特性,所以我们可以立即去使用它们。
那即便我们不需要类型系统,通过 TypeScript 去使用 ECMAScript 的新特性也是一个很好的选择。因为 TypeScript 最终可以选择编译到最低 ES3 版本的代码,所以兼容性非常好。
因为最终是编译为 JavaScript。所以任何一个 JavaScript 运行环境下的应用程序,都可以使用 TypeScript 开发。例如浏览器应用,Node.js 应用,React Native,或者是 Electron 桌面应用。
相比较于 Flow,TypeScript 作为一门完整的编程语言,它的功能更为强大。生态也更健全、更完善。特别是对于开发工具这一块,微软自家的开发工具对 TypeScript 的支持都特别友好。
Vue3.0
Vue 是“一个用于构建用户应用程序的渐进式框架”。它的设计非常灵活,可以将单个 Vue 库集成到其他项目中,也可以完全使用 Vue 构建复杂的项目。Vue 通常被视为一个易于理解和实现的框架,它支持纯 HTML 模板,而 React 需要使用 JavaScript 定义来 DOM 元素。
Vue 3.0 的五个关键变化:
速度
速度更快是 Vue 目前的主要卖点之一,Vue 以其渲染速度而闻名,与其他框架一样,Vue 使用虚拟 DOM 来渲染组件。为了加速渲染过程,必须减少虚拟 DOM 的工作负载。通过编译时间提示、组件快速路径、单态调用、优化 slot 生成等手段来达到提速目的。
体积
目前,Vue 的体积已经很小了(压缩后 20KB)。由于进行了摇树优化(消除非重要代码),3.0 的预计大小约为 10KB(压缩后)。主要是移除了对 Vue 项目来说不是很重要的库,可以通过 import 语句来使用它们,而不是把它们打包在主 src 代码中。
可维护性
Vue 3.0 将从 Flow 转到 TypeScript,同时又非常重视兼容性易用性,不喜欢使用 TypeScript 的用户仍然可以使用纯 JavaScript。Vue 3.0 提供了更好的模块化,从而变得更加可定制和灵活,还提供了透明性,开发人员可以深入到源代码中。编译器重写是最令人兴奋的功能之一,不仅带来了更好的 IDE 支持,而且可以创建源码映射,如果存在运行时错误,它将给出错误对应的文件位置和行号。
面向原生
Vue 3.0 将与平台无关——它将运行纯 JavaScript,并且在其主构建中不会假设使用诸如 Node.js 之类的东西。这种灵活性使构建 Web、iOS 或 Android 应用程序变得更容易。面向原生使 Vue 更像是 React 的替代品。
易用性
公开 Reactivity API——新的变更允许开发人员显式创建反应式对象和自定义重渲染 hook。3.0 还解决了 Vue 用户经常抱怨的一个问题:什么时候以及为什么要重新渲染组件?3.0 提供了一个 renderTriggered 事件,人们可以通过它查看是什么触发了更新。这个出色的功能将使 Vue 更加透明。
JAMStack
JAMstack是指使用JavaScript、API和Markup构建的技术堆栈,JAM是JavaScript、API和Markup的简称,前面第一个字母缩写,JAMstack一种基于客户端JavaScript,可重用API和预构建Markup的现代Web开发架构,需要符合下面三个标准:
1. JavaScript:请求/响应周期中的任何动态编程都由JavaScript处理,完全在客户端上运行。这可以是任何前端框架,库,甚至是轻量JavaScript。
2. API:所有服务器端进程或数据库操作都被抽象为可重用的API,使用JavaScript通过HTTPS访问。这些可以是定制的或利用第三方服务。
3. Markup:模板化标记应该在部署时预先构建,通常使用内容站点的站点生成器或Web应用程序的构建工具。
为什么JAMstack会逐渐流行?
1. 更好的性能:为什么要在部署时生成页面时等待页面动态构建?当谈到最小化第一个字节的时间时,没有什么能比通过CDN提供的预构建文件更好。
2. 安全性更高:将服务器端进程抽象为微服务API,可以减少攻击的表面区域。您还可以利用专业第三方服务的专业知识。
3. 更便宜,更容易扩展:当您的部署相当于可以在任何地方提供服务的一堆文件时,扩展就是在更多地方提供这些文件的问题。CDN是完美的,通常包括扩展他们的所有计划。
4. 更好的开发者体验:松散耦合和控制分离允许更有针对性的开发和调试,并且为站点生成器扩展选择CMS选项消除了为内容和营销维护单独堆栈的需要。
2020年前端发展趋势已经十分明朗,可以说弄不懂这三大技术到底是何原理,势必会严重影响工作效率,乃至跳槽时也将处于不利地位。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。