文章讨论了 React 和 Next.js 团队最近推广的服务器组件,这种新的构建 Web 应用程序的方式与大多数现有的 React 应用程序不符。
因此,作者提出了一个问题:这种变化是否像 Angular.js 转向 Angular 2 一样大?React 是否正在经历类似于 Angular.js 的阶段?
文章指出,React 的核心仍然是一个视图库,这一点没有改变:使用 React 服务器组件,您仍然可以使用 JSX 构建组件,并渲染作为 props 传递的动态内容。但是,除此之外,服务器组件中的所有其他内容都发生了变化。数据获取不再依赖于 useEffect 或 react-query;相反,开发者应该在异步组件中使用 fetch。
作者认为,React 团队对 fetch 函数进行了增强,以提供自动请求去重。这是必要的,因为如果您需要在组件树的更深处访问获取的数据,则不能将其放置在 React Context 中,因为 useContext 在服务器组件中被禁用。
因此,在组件树的不同位置访问相同获取的数据的推荐方法是重新获取它,并依赖于 React 进行去重。此 fetch 函数还默认缓存数据,而不管响应缓存标头如何。
(文/开源中国)