前端周热点103: Contentlayer, Remotion 3, Stale Closure, Cross-platform, Jest 28

266 阅读5分钟

React

Contentlayer: Content Made Easy for Developers (beta)

Contentlayer是一个新的系统,它提供了管理你的内容(Markdown,CMS,Notion...)和你的代码之间的联系。你定义一个模式,它将验证/编译你的内容,并高效地生成一个带有TypesScript类型的.contentlayer文件夹,并可以直接导入你的应用程序中。这似乎大大改善了构建性能(即使有冷缓存,也能达到X2的提升)。测试版有一个官方的Next.js集成 ,减少了生成代码的数量。我建议观看介绍性的入门视频 (5分钟),以了解它在Next.js背景下的工作情况。Johannes Schickling的一个新项目,也是Prisma的创造者,也在研究代码和DB之间的胶水。

Remotion 3.0

Remotion可以使用用React(网络)代码和data/props的编程方式创建视频。经过10个月的开发,v3.0刚刚发布(预告片),主要的新功能是对AWS Lambda上的无服务器渲染的新支持,它允许你扩展,降低成本,并更快地制作视频

Hooks, Dependencies and Stale Closures

包含调试代码的文章,帮助全面了解React中的陈旧闭包问题。如果你使用记忆化,并且未开启ESLint的exhaustive-deps规则,你就有可能在你的代码库中引入这种类型的问题,而这有时候很难调试!

The challenges of rendering an OpenLayers map in a popup through React

关于在几个窗口中通过门户渲染React应用的一个有趣的反馈。它有一些优点(用一个状态来控制所有的窗口),但也有一些问题需要解决。

拓展阅读

React-Native

Migrating React And Native Apps To React Native

Callstack工程师解释了如何为现有的应用程序采用React-Native,有两种不同的方法:greenfield(完全重写)和brownfield(增量迁移)。还唤起了如何将一个Web应用移植到React-Native。

Writing cross-platform components for web and React Native

Artem gives some ideas for cross-platform web/mobile development. He suggests using primitive components, and taking a web-first approach for DX reasons: developing in the browser and testing with Cypress, then verifying that the mobile app works.

Artem给出了一些关于跨平台的网络/移动开发的想法。他建议使用原始组件,并出于DX的原因采取网络优先的方法:在浏览器中开发,用Cypress进行测试,然后验证移动应用是否正常。

拓展阅读

其它

Jest 28: Shedding weight and improving compatibility

这个版本有很多很酷的东西! 我的关注点:

  • 支持分片,使测试执行并行化
  • 完全支持包的 "exports"
  • GitHub Actions Reporter看起来非常方便
  • ESM支持仍然受限
  • jest-runner-tsd:用于测试TypeScript类型
  • jest-light-runner:在Babel代码库上快2倍。

Building a JavaScript Bundler

Christoph Nakazawa解释了如何在一些现有的Jest包基础上创建一个JavaScript bundler。读取JavaScript文件,创建依赖关系图,捆绑运行时,最终的捆绑装配...... 这是一本技术读物,极大地解开了一个简单的bundler的内部工作原理。

Netlify Edge Functions (beta)

After a failed attempt (Edge Handlers), Netlify releases a new serverless @ Edge offer with its Edge Functions in beta, based on the Deno Deploy infrastructure, and thus more compatible with web standard APIs. This allows in particular to run React meta-frameworks using server-side code more optimally: Remix, Next.js (only middleware for now), Hydrogen, Server Components, Astro...

在一次失败的尝试(Edge Handlers)之后,Netlify发布了一个新的无服务器产品,其Edge功能处于测试阶段,基于Deno Deploy基础设施,因此与Web标准API更加兼容。这特别允许使用服务器端代码更优化地运行React元框架。Remix、Next.js(目前只有中间件)、Hydrogen、服务器组件、Astro...

Hydration is Pure Overhead

Qwik/Angular的创建者继续质疑我们服务器端渲染的SPA的水化模型,并推动采用另一种更有效的模型,基于 "恢复性"。

拓展阅读

CleanShot 2022-04-27 at 11 19 35@2x

订阅原文: