前端周热点93: Server Components, Remix, Gatsby, React-Native-Web, Perf, Immutability

268 阅读5分钟

React

Shopify: React Server Components best practices

Cathryn对Shopify公使用Servers Components的反馈,她通过新的Hydrogen框架学会了使用Servers Components。如果没有最佳实践指导,你可能无法正确地使用这个新的React功能,导致最终会产生一个比它大的包。她建议默认使用Shared Components,而不是Client Components(我们现在使用的)。对于交互性,提取一些最细粒度的Client Components,然后把剩余的尽可能转化为Server Components。我们有时用来优化的composition patterns(使用children用)也可以用来搭配使用不同类型的组件。她提供了一个真实的案例,用了2个例子来说明:通讯注册和产品FAQ。一个Shopify使用服务器组件的教程也已经出版了:Rapid Development with Hydrogen: Building a Product Page

How to write performant React apps with Context

Nadia解释了如何使用React上下文来优化复杂的React表单的渲染。首先,你必须分离成2个上下文和钩子useFormData()useFormAPI()。不要忘记正确记忆api对象。我们最终可以把状态分成几个小的上下文。这些技术可能无法像真正的状态管理器那样扩展,但在你无法使用状态管理器的情况下,了解这些技术还是很有用的。

The “best” way to manage icons in React.js

在React中使用图标有很多方法,每种方法都有不同的权衡。.svg文件不能在CSS中写样式。渲染SVG的React组件(也适用于SVGR)很方便,但它们在HTML输出中内联SVG标签会使页面更重。根据我的经验,在多次使用相同图标的静态页面(或SSR)上,我们很快就会看到这个问题。Ben提供了一个伟大的、鲜为人知的替代方案:使用SVG精灵。

拓展阅读:

React-Native

其它

A list of every web API in Deno

Luca(Deno贡献者)详尽地提到了Deno支持的所有网络API。毫不奇怪,它是一个部署Remix应用的好平台。这可能是上周宣布的Node.js 18的新网络API的回应。另请阅读:Node.js核心中的fetch():为什么你应该关心

Immutability isn’t free

有趣的故事,在后端背景下,但基本上适用于React应用程序。FP和不可变性的使用导致了与数组复制和O(n2)算法有关的糟糕性能。注意:通过使用ImmutableJS等lib内部使用的向量尝试和结构共享,也有可能获得更好的不变性性能。

Netlify Scheduled Functions

Quirrel(serverless cron jobs SaaS)及其创建者Simon(见他的帖子)都加入了Netlify,Netlify在测试版中引入了新的Scheduled Functions功能。这种功能在目前的无服务器领域显然是缺乏的。请注意,Blitz(Simon是贡献者之一)转向Blitz Toolkit,以提供类似的服务。我们对Vercel提出的建议不会感到惊讶😏

拓展阅读:

订阅原文:www.getrevue.co/profile/thi…