Bun

指南生態系統

使用 Bun 伺服器端渲染 (SSR) React 元件

要在 HTML 串流伺服器端 (SSR) 渲染 React 元件

import { renderToReadableStream } from "react-dom/server";

function Component(props: { message: string }) {
  return (
    <body>
      <h1>{props.message}</h1>
    </body>
  );
}

const stream = await renderToReadableStream(
  <Component message="Hello from server!" />,
);

將此與 Bun.serve() 結合,我們就能得到一個簡單的 SSR HTTP 伺服器

Bun.serve({
  async fetch() {
    const stream = await renderToReadableStream(
      <Component message="Hello from server!" />,
    );
    return new Response(stream, {
      headers: { "Content-Type": "text/html" },
    });
  },
});

React 18.3 及後續版本包含 SSR 最佳化,可利用 Bun 的「直接」ReadableStream 實作。