本文档介绍如何将 React Router 与 Cloudflare Pages 和 Workers 集成,从而使用 Cloudflare 的基础设施在边缘实现服务器端渲染。此集成提供了一种在 Cloudflare 的全球网络上部署 React Router 应用程序的无缝方式,并内置了对 Cloudflare 特定功能(如 KV 存储)的支持。
React Router 的 Cloudflare 集成允许您在 Cloudflare 的边缘网络上运行服务器渲染的 React 应用程序。它提供了必要的适配器来处理进入 Cloudflare Pages Functions 或 Workers 的 HTTP 请求,并将其连接到 React Router 应用程序的路由系统。
来源
Cloudflare 集成通过 @react-router/cloudflare 包提供,该包为在 Cloudflare 平台上运行 React Router 提供了定制化解决方案。
来源
首先,您需要安装必要的包
开发时,您还应安装
要处理 Cloudflare Pages 项目中的请求,您需要创建一个 Pages 函数。这通常是通过在项目中的 functions 目录中创建一个文件来完成的。
来源
您的 Pages 函数的标准设置如下所示:
getLoadContext 函数为您的路由加载器和 action 提供对 Cloudflare 特定环境变量和上下文的访问。
来源
当请求到达您的 Cloudflare Pages 应用程序时,它会在生成响应之前经过多个层。
来源
您的加载器和 Action 函数会收到 Cloudflare 上下文,允许您与 KV 存储等 Cloudflare 服务进行交互。
来源
React Router 提供了工具来简化构建 Cloudflare 应用程序时的本地开发体验。
@react-router/cloudflare 中的 cloudflareDevProxy Vite 插件可在本地开发期间模拟 Cloudflare 环境。
来源
为了设置本地开发,请将 cloudflareDevProxy 插件添加到您的 Vite 配置中。
您还需要一个 wrangler.toml 文件来定义您的 Cloudflare 绑定。
来源
您可以使用两种方法进行本地开发:
npx vite dev 时的默认选项。npx wrangler pages dev ./build/client。这两种选项都受 cloudflareDevProxy 插件支持,并提供相似的开发体验。
来源
要将您的 React Router 应用程序部署到 Cloudflare Pages:
react-router build 构建您的应用程序。来源
来源