感觉入门前端了 2333,
最近在家实验了一个想法,并第一次在 NPM 上发布了一个 Package 😀。
关于想法:
- 前段时间最新发布的 React 19 才支持异步组件的渲染
(...) => Promise<ReactNode>
- 然而这个功能与
Next.js
等服务端渲染 (SSR) 绑定,纯客户端是不支持的
- 难道 React 官方搞不定吗?
- 🤔 我来尝试一下?
于是得到了早期阶段成果:
- 手搓了一个 Demo 网页:https://shao.fun/react-client-async
- 发布 NPM 包:将 Demo 封装为了 Hook 和 Component
- 相比同类型的 Package,这个方案支持任意异步,支持中断信号 (AbortSignal)
- 自动支持组件重渲染或组件卸载 (Unmount) 时的信号中断
- 自动记忆化异步函数,减少不必要的重新加载
- 提供控制器 (
load
returns promise and stop
with reason)
- 结合
AbortSignal
和 Promise
的错误处理