【2023】前端趋势前瞻,学起来!(一)

简介: 【2023】前端趋势前瞻,学起来!(一)

image.png

前言

那是最美好的时代,那是最糟糕的时代;那是智慧的年头,那是愚昧的年头;那是信仰的时期,那是怀疑的时期;那是光明的季节,那是黑暗的季节;那是希望的春天,那是失望的冬天;我们全都在直奔天堂。 —— 狄更斯《双城记》

新年新气象!过去的三年对于任何行业来说都是压抑的三年,HS、GL、CY...,不是在做核酸,就是在去做核酸的路上。好在疫情的阴霾在逐渐散去,露出了一丝丝曙光 ~ 但我们面对的不确定性却越来越多了,面抵抗这种不确定性唯一的办法就是不断扩展视野、精进技能。新年伊始,关注一些前端的新趋势,保持对新鲜事物的嗅觉,才能在不确定的大浪潮中不至于迷失方向。

不确定性

可以预见,经济压力将使效率成为一个关键话题,这将导致人们关注加速生产力工具的发展。

我们可以期待RomeTurbopack等工具的快速发展,它们对开发人员体验产生重大影响——捆绑速度、CI时间等,由于 JavaScript 交付和/或可扩展架构(孤岛)的新颖方法,同时仍与React兼容,像AstroAleph.js这样的框架将获得更多关注。

我们已经见证了用非 JavaScriptrustgo) 编写的前端工具新时代的诞生。虽然仍有许多公司还没有准备好证明迁移成本的合理性,但那些敢于这样做的公司可以享受 10 倍(字面意思)构建速度的好处,并大大提高工程师的幸福感。

开发可以做什么

工程师应该不断增加他自身的价值,理想情况下,一个人应该对他的技能进行 T 型塑造。

这意味着在某些方向上要深入,但也要有广泛的技能。他说,那些想要掌握前端技术的人需要了解网络、DevOps、自动化、测试、编程概念、安全、SEO、用户体验设计、软件架构、性能优化、资产优化、分析等方面的知识。

甚至需要关注美学、理解构图和运动概念以及至少了解颜色的基础知识非常有帮助,必须具备良好的网络排版和排版原则知识。

2022 年的亮点

React 18

2022年是 React 18 的发布年份,这是自 2020 年 10 月以来的最后一次重大版本更新。这是一个重要的里程碑,因为 React 团队多年来一直在研究和开发 React 中对并发的支持,这是对 React 核心 —— 基础更新渲染模型的又一大进展。

React 18 带来了一些开箱即用的改进,例如自动批处理、新 API(如startTransition)以及支持Suspense,想回头看看?【传送门

JavaScript 的演进

随着 2015 年 6 月 ECMAScript 2015(或 ES6)的发布,JavaScript 语言进入了它的黄金时代。在交付了许多期待已久的功能(如类或模块)之后,每年定期进行更新,然后添加其他重要功能,如 async/awaitrest/spread 运算符。

尽管它现在处于相当成熟的状态,但该语言仍在逐年稳步发展。ECMAScript 2022 的一些亮点是公共、私有和静态类成员、顶级 await 和Object.hasOwn

CSS 的演进

如果说 JS 已经成熟但仍在发展,那么 CSS 的发展速度比以往任何时候都快。与 HTML5 一起,CSS3 取得了巨大成功,尽管我们经常将其作为单一规范来谈论,但 CSS 级别 3 将该语言划分为几个称为“模块”的独立文档。如今,最新的 CSS 简称为 CSS,其级别仅用于区分早期版本的功能。

如果 CSS3 是一场革命,那么还有另一场革命在望。更多视口单元、原生嵌套、容器查询……

Web 标准和浏览器

如果浏览器跟不上,语言进化就没有意义。幸运的是,在标准化工作之后,主要浏览器供应商也努力遵守它们。如今,每个主流浏览器都是常青浏览器,这意味着它们会在后台自动升级并始终运行它们的最新版本。

2022年我们见证了浏览器中的许多新功能,并且我们写了很多即将推出的功能。在5 月份的年度 Google I/O 大会上,浏览器团队正在齐心协力,开会讨论他们打算开展的功能和优先事项。

回顾一下Compat 2021Interop 2022

新的发展范式

2022年是高级 SSRhydrate 技术(如React 服务器组件选择性水化)以及 Islands Architecture 等新范例的一年。我们解释了后者,并在 9 月份完成了一些实施。

我们也开始看到一些围绕 CSS-In-JS 的讨论,它在过去两三年变得非常流行,尤其是在 React 中。10 月,我们研究了 CSS-in-JS 的问题和优势,包括性能影响。

2023 年的趋势

TypeScript 继续迅速发展

TypeScript 是一种编程语言,是 JavaScript 的超集,由微软于 2012 年发布。创建它的想法来自于 JS 不限制对象的类型。正如这个编程语言的名字所暗示的那样,它支持 JS 所缺乏的可选类型。TypeScript 还添加了枚举以促进代码组织。

Microsoft 的解决方案并不是市场上唯一的解决方案。然而,GitHub 的状态显示 TypeScript 同比稳居第四。它仍然是这里最常用的编程语言之一。

image.png资料来源:Octoverse 的状态 | GitHub

TypeScript 采用了 JavaScript 语法和语义。它带来了一些 JavaScript 开发人员渴望的额外功能。这种语言提高了开发人员的工作效率,并使维护不断增长的代码库变得更加容易。

让我们回顾一下 TypeScript 作为最强大的 JavaScript 趋势之一的主要优势。

TypeScript的优点

  • 轻松上手:对于那些熟悉 Javascript 的人来说,切换到这种语言并不是那么具有挑战性。
  • 广泛采用TypeScript 得到顶级 Javascript 库和框架的支持。此外,它还编译可读且基于标准的 Javascript
  • 可选静态类型TypeScript 基于结构类型或“鸭子”类型。使用这种语言,您可以通过组合现有类型来创建复杂类型。为此,您可以使用联合或泛型。此外,这种语言支持接口。
  • 早期错误检测TypeScript 可以通过突出显示意外行为来减少程序错误的数量。它发生在编译时,而不是在执行期间,就像 Javascript 本身一样。这就是 TypeScript 设法生成更高质量代码的方式。
  • 大规模解决方案支持Javascript 并非用于创建现代 Web 中充斥的大型复杂系统。为此,TypeScript 借用了一些面向对象的特性,如接口、泛型和模块。

根据Stack Overflow 开发人员调查,这就是为什么 TypeScript 是 2022 年最受喜爱的 5 种编程语言之一。JS 趋势表明,这项技术的受欢迎程度将在 2023 年继续增长。


image.png因此,这种语言的广泛接受是最近最具影响力的 JavaScript 趋势之一。但是,它也有缺点。TypeScript 代码需要编译成常规的 JavaScript 代码才能由浏览器执行。在处理小型项目时,这种延迟可能会很严重。所以在这些情况下,JavaScript 仍然可以更好地工作。

使用 TypeScript 的端到端类型安全

JavaScriptTypeScript 的演变势不可挡。在这场 Web 开发的大迁移中,全栈应用的端到端类型安全无疑是一个重要的趋势。此概念的实现与通信层 (API) 相关,通信层需要将类型化实体(例如type Usertype BlogPost)从服务器桥接到客户端应用程序。

在用于客户端-服务器通信的 Web 开发中,通常在RESTGraphQL中做选择。两者都可以与OpenAPI for REST 和GraphQL Code Generator for GraphQL 一起使用,为前端应用程序生成类型化的模式文件。

然而,有一个名为tRPC的类型安全 API 的后起之秀,它可以用作 REST/GraphQL 的替代品。如果您在前端和后端共享代码的 TypeScript monorepo 中工作,tRPC 使您能够将所有类型从后端导出到前端应用程序,而无需任何类型化模式的中间生成。随后,前端只需使用在后台通过 HTTP 连接的类型化函数即可调用后端的 API,以启用实际的客户端-服务器通信。总体趋势肯定会朝着使用更多此类类型安全解决方案的方向发展,用于全堆栈应用程序,如 tRPC、ZodPrismaTanStack Router,它们都在应用程序的边缘提供类型安全。


相关文章
|
10月前
|
监控 JavaScript 前端开发
【2023】前端趋势前瞻,学起来!(四)
【2023】前端趋势前瞻,学起来!(四)
|
10月前
|
存储 人工智能 Rust
【2023】前端趋势前瞻,学起来!(三)
【2023】前端趋势前瞻,学起来!(三)
|
10月前
|
Web App开发 存储 前端开发
【2023】前端趋势前瞻,学起来!(二)
【2023】前端趋势前瞻,学起来!(二)
|
Web App开发 缓存 Rust
前端技术未来三年前瞻性思考
从业务场景、用户体验、研发速度、维护成本四个维度来看框架等前端技术,分享对未来三年前瞻性的思考。
10165 0
前端技术未来三年前瞻性思考
|
Web App开发 人工智能 前端开发
大前端2020年前瞻:有哪些你不能错过的技术趋势?
“学不动”的大前端,在 2020 年有哪些你不能错过的技术趋势?又有哪些你将面临的挑战?
2905 0
大前端2020年前瞻:有哪些你不能错过的技术趋势?
|
8月前
|
Web App开发 前端开发 JavaScript
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
95 0
|
8月前
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线程配置
前端学习笔记202305学习笔记第二十三天-地图单线程配置
65 0
前端学习笔记202305学习笔记第二十三天-地图单线程配置
|
8月前
|
前端开发 API
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-react-redux的工作流程
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-react-redux的工作流程
55 0
|
8月前
|
前端开发
前端学习笔记202306学习笔记第五十一天-工厂模式4
前端学习笔记202306学习笔记第五十一天-工厂模式
34 0
|
4月前
|
前端开发 JavaScript
《Webpack5 核心原理与应用实践》学习笔记-> 构建微前端应用
《Webpack5 核心原理与应用实践》学习笔记-> 构建微前端应用
41 1