前端开发“灾难”?React 19引发性能问题紧急叫停

在前端开发领域,React一直是最受欢迎的框架之一,广泛应用于Netflix、Airbnb、Discord以及Meta旗下的Facebook、Instagram和WhatsApp等知名平台。React驱动了数十亿人的日常互联网体验,因此React的每一次更新都会引起广泛关注。

React 19 RC版本发布带来的新功能

今年4月底,Meta公司的React开发团队发布了React 19的RC版本,带来了许多令人兴奋的新功能,包括“use”API、新钩子Actions、稳定服务器组件以及Server Actions等。这是自2022年3月React 18全面发布以来的首个主要版本更新。

潜在的性能问题引发担忧

然而,除了这些新功能和开发体验的改进之外,一个小变化直到上周才引起大家的重视,这个变化可能显著降低依赖React的网站的性能表现。

一切的起点,源自前端工具集TanStack Query核心维护者之一Dominik的一条推文。他指出,React 18和React 19在Suspense的并行获取处理方面存在差异。在React 18中,组件的并行获取是“按组件”区分设计的,即使将两个组件放在同一个Suspense边界内且各自执行获取,触发仍将并行执行。而在React 19中,查询现在会以瀑布形式运行,这意味着查询将顺序执行,等待一个查询完成后再开始下一个查询。

React 19 差点拖慢整个互联网

社区反应强烈

Dominik的发现引起了广泛关注和讨论,许多开发者表示确有同感。高级Web工程师Adam Rackis认为,这个变化让人抓狂且莫名其妙。NozzleIO联合创始人Tanner Linsley也表示,这个改动特别影响现有应用程序及用例,拉低其性能表现。

核心团队的回应

React核心团队迅速回应了这些担忧,承认这一变化可能带来的性能问题。目前,React 19.0.0版本尚未正式发布,这为React团队重新考虑这一调整留了一丝希望。

值得注意的是,Dominik并不是第一个发现这一问题的人。Gabriel Valfridsson在RC公告发布后的第二天就发现了这一变化,但当时并未引起广泛关注。Dominik在将React Query升级到React 19的过程中,才意识到问题的严重性。

性能测试结果

不少开发者分享了在React 18中几乎并行获取所有内容的应用程序在React 19中如何导致性能崩溃的情况。开发者Matias Gonzalez的测试显示,在更新到React 19后,加载相同模型的时间从2.5秒增加到3.5秒。

更糟糕的是,这次调整不仅大大影响性能表现,对许多依赖该模式的开发者造成冲击,React核心团队还毫不客气地承认了这一点。

其他重要变化

React 19还包括一些其他重要变化,例如批量同步、默认连续通道,以及不再对Suspended的兄弟组件进行预渲染。Dominik否认这一变化是bug,强调这是React核心团队的设计决定。

记者观点

作为一名新闻从业者,我认为这次React 19的事件突显了前端开发中平衡新功能和性能优化的重要性。React作为一个广泛使用的框架,每一次更新都可能影响到大量网站的性能和用户体验。虽然新功能能够提升开发体验,但如果没有充分考虑到性能问题,可能会对现有系统造成严重影响。

React核心团队的迅速回应和紧急叫停显示了他们对社区反馈的重视。这也是一个提醒,开发者在更新到新版本时,需要仔细测试和评估可能带来的影响,确保新版本的引入不会对系统性能和稳定性造成负面影响。

总之,技术进步固然重要,但在实现创新的同时,必须谨慎处理可能引发的问题。React 19的事件为我们敲响了警钟,提醒我们在追求技术进步的同时,不能忽视对现有系统的影响和性能优化。

Leave a Reply

Your email address will not be published. Required fields are marked *