【前端篇】2024年前端框架大更新,探索 JavaScript 框架生态系统

在刚刚结束的 2024 Google I/O 大会上,Chrome 团队成员进行了题为《探索 JavaScript 框架生态系统》的主题演讲。本文将带你回顾过去一年,主流前端框架都发生了哪些大事件!

随着 JavaScript 框架的不断发展,它们在某些关键功能和架构上逐渐呈现出趋同的态势。这些共性包括基于组件的架构、基于文件的路由以及现代化服务端渲染(SSR)支持。这种融合表明生态系统正在走向成熟,各框架可以相互学习并采用最佳实践。

为了更好地理解这些趋势,让我们深入研究每个框架。


Vue
Vue 的最新版本 Vue 3.4 带来了多项性能改进。同时,Vue 还在积极开发 Vue Vapor,这是一个注重性能的项目。以下是 Vue 的一些重要亮点:

  • Vue 3.4 发布:包含一个完全重写的解析器,速度提升了两倍,更快的单文件组件(SFC)编译,以及重构的响应式系统,提高了重新计算的效率。
  • Vue Vapor 模式:这是一种可选的、以性能为导向的编译策略,与 Vue 单文件组件协同工作。Vapor 模式生成的代码性能更高,在所有组件中使用该模式还可以消除对 Vue 虚拟 DOM 的需求,从而减小打包大小。
  • Vue 2 生命周期结束:尽管 Vue 2 的生命周期在 2023 年 12 月 31 日结束,但它仍然被广泛使用。根据统计数据,大约 50%的 Vue npm 包下载量来自 Vue 2。

React
随着 React Server Components 的发布,React 为组件开发带来了全新的视角。此后,React 团队继续推出多项创新功能,如 React Compiler 和 Server Actions 等,进一步提升了开发者的体验。

  • 服务器组件:实现了数据的服务器端获取和渲染,并流式传输至客户端,减少了客户端加载的代码量,提升了用户体验。
  • React 编译器(React Compiler):通过自动记忆组件,优化了应用性能,减少了不必要的重新渲染,且开发者无需修改代码即可享受这一优化。
  • 服务器操作(Server Actions):使客户端能够直接调用服务器端函数,简化了数据变更、表单提交等任务的处理。
  • 资源加载:通过声明式 API,简化了脚本、样式、字体和图像等资源的预加载和加载过程。
  • 离屏渲染:React的离屏渲染功能允许开发者在后台渲染屏幕内容,无需额外的性能开销。这可以视为 content-visibility  CSS属性的扩展,无需额外的性能开销,适用于 DOM 元素和 React 组件,提供了更大的灵活性和性能优化空间。

Angular
Angular 近期的版本带来了许多更新和特性,其中包括信号机制、可延迟视图、NgOptimizedImage 组件、非破坏性预加载以及即将推出的部分预加载:

  • 信号机制(Signals):这是一种先进的跟踪应用状态的方法,通过减少变更检测过程中的计算量,显著提高了应用的运行时性能,特别是交互到下一次绘制(INP)的时间。
  • 可延迟视图:允许开发者延迟加载特定的组件、指令和管道,优化了加载策略,提升了应用性能。
  • NgOptimizedImage 组件:这是Angular 提供的一个图像组件,自动集成了图像加载的最佳实践,帮助开发者更高效地管理和优化图像资源。
  • 非破坏性预加载:解决了服务器端渲染的 Angular 应用在客户端重建 DOM 时可能出现的闪烁问题,提升了用户体验。
  • 部分预加载:Angular 即将推出的部分预加载功能将彻底改变页面加载的方式。将彻底改变页面加载的方式,初始渲染时不加载任何 JavaScript 代码,只有当用户与页面特定部分交互时,相关代码才会被加载和执行,提高了资源利用效率和用户响应速度。

Astro
Astro 作为一个前沿的静态网站构建器,其独特的发展策略备受关注。它在性能和开发者体验方面进行了深入优化:

  • Astro Islands:允许开发者构建与页面其余部分解耦的交互式 UI 组件,提高了组件更新的效率,从而提升了整体性能。
  • 混合渲染:结合了静态站点生成(SSG)和服务端渲染(SSR)的优势,提升了页面的加载速度和交互体验。
  • 优化的图片处理:引入了新的 Image 和 Picture 组件,简化了图片处理流程,减少了图片加载时间。
  • 流畅的视图过渡:对 View Transitions API 的内置支持,使页面之间的过渡更加平滑自然。
  • 强大的开发工具栏:Astro Dev Toolbar 提供了丰富的调试和优化选项,帮助开发者更轻松地构建和维护高效的 Astro 应用程序。

Remix
Remix 作为一个全栈 Web 框架,逐渐受到开发者的关注。它专注于 Web 基础知识和增强的开发者体验,并引入了一些重要的更新:

  • Remix 2.0 版本发布:Remix 2.0 在 2023 年 9 月发布,为框架带来了显著的改进和新功能。
  • 对 Vite 的稳定支持:为 Vite 提供了稳定支持,Vite 是一个快速且轻量级的构建工具,提供了更快的开发构建和更好的性能。
  • SPA 模式:引入了 SPA(单页应用)模式,允许开发者构建纯静态站点,而无需在生产环境中使用 JavaScript 服务器。

Next.js
2023 年 5 月发布的 Next.js 13.4 版本引入了一些重要的功能,如 React Server Components、流处理和 Suspense 的稳定支持。此后,Next.js 继续为新的 React API(如 Server Actions)提供支持,并通过 Turbopack 等计划改进开发者体验。其他亮点包括:

App Router:在 Next.js 13.4 中成为稳定版本,为 Next.js 应用中的路由结构和管理提供了新方式。

  • Turbopack:这是一种基于 React 的 Suspense API 的页面渲染方法,提供了可缓存静态页面的性能优势,同时仍然能够将动态数据集成到页面内容中。

Nuxt
Nuxt 即将发布 Nuxt 4,过去一年中 Nuxt 框架频繁发布新版本,同时 Nuxt 模块生态系统也已经增长到近 220 个模块。Nuxt 的一些最新发展包括:

  • Nuxt 3.x 版本发布:每月发布新的次要版本,其中一些亮点包括支持 Vite 5、仅服务器页面和仅客户端页面、客户端 Node.js 支持和原生 Web 流。
  • Nuxt 模块:亮点包括新发布的 nuxt/fonts 模块,以及 nuxt/image 和 Nuxt DevTools 的 1.0 版本发布。即将发布的模块将包括 nuxt/scripts、nuxt/hints、nuxt/a11ynuxt/auth
  • 服务器端组件(Islands 组件):继续加强对服务端组件的支持,这些服务端渲染的组件可以在静态站点中使用,实现了 Islands 架构的采用。

Solid
Solid 团队致力于推出其元框架 SolidStart 的稳定 1.0 版本。SolidStart 以其细粒度的响应性、同构路由和对各种渲染模式的支持而自豪。亮点包括:

  • 细粒度的响应性:允许进行精确更新和最佳性能,实现高效渲染和状态管理。
  • 同构路由:提供了一种统一的路由方法,允许开发者定义在客户端和服务器端都能无缝工作的路由。
  • 灵活的渲染模式:支持多种渲染模式,包括服务器端渲染、静态站点生成和客户端渲染,为开发者提供了选择最适合其应用的方法的灵活性。

Svelte
在过去的一年里,Svelte 团队专注于即将发布的 Svelte 5,这将是一个重要的版本。其他亮点包括:

  • Svelte 5 即将发布:除了对 Svelte 编译器和运行时进行重写外,还引入了 Runes 的概念。
  • Runes 的公布:这是一项即将推出的功能,将实现普遍且细粒度的响应性,使响应性不再局限于单个 Svelte 文件内,而是能够跨越多个文件。
  • SvelteKit 2 发布:作为 Svelte 的元框架,SvelteKit 2 的发布带来了浅路由和对 Vite 5 的原生支持等新特性。

小结
JavaScript 框架生态系统持续快速发展,每个框架都在不断推出新的功能和改进。无论你关注的是成熟的框架如 Angular、React 和 Vue,还是新兴的框架如 Astro、Remix 和 Solid,都有许多令人兴奋的技术进展值得探索。

作为开发者,及时了解这些技术动态对于选择最适合项目需求和开发偏好的框架至关重要。希望这篇概述能够为你提供关于当前 JavaScript 框架状态的有价值的见解。

  • 39
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值