切换到使用renderToReadableStream渲染根组件。
This commit is contained in:
parent
dbaee0c81a
commit
a0dbe4f7fc
@ -1,7 +1,7 @@
|
|||||||
import Elysia from 'elysia';
|
import Elysia from 'elysia';
|
||||||
import { connect } from 'elysia-connect-middleware';
|
import { connect } from 'elysia-connect-middleware';
|
||||||
import { createElement } from 'react';
|
import { createElement } from 'react';
|
||||||
import { renderToString } from 'react-dom/server';
|
import { renderToReadableStream } from 'react-dom/server';
|
||||||
import { createServer } from 'vite';
|
import { createServer } from 'vite';
|
||||||
import { App } from './src/App';
|
import { App } from './src/App';
|
||||||
|
|
||||||
@ -23,13 +23,14 @@ app.use(connect(vite.middlewares));
|
|||||||
app.get('/', async ({ request }) => {
|
app.get('/', async ({ request }) => {
|
||||||
const url = request.url.replace(base, '');
|
const url = request.url.replace(base, '');
|
||||||
const app = createElement(App);
|
const app = createElement(App);
|
||||||
const rootComponent = await renderToString(app);
|
const rootComponent = await renderToReadableStream(app);
|
||||||
|
const rootComponentString = await Bun.readableStreamToText(rootComponent);
|
||||||
|
|
||||||
if (!isProduction) {
|
if (!isProduction) {
|
||||||
template = await vite.transformIndexHtml(url, template);
|
template = await vite.transformIndexHtml(url, template);
|
||||||
}
|
}
|
||||||
|
|
||||||
const html = template.replace(`<!--ssr-outlet-->`, () => rootComponent);
|
const html = template.replace(`<!--ssr-outlet-->`, () => rootComponentString);
|
||||||
|
|
||||||
return new Response(html, {
|
return new Response(html, {
|
||||||
headers: {
|
headers: {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user