代码拉取完成,页面将自动刷新
import React from 'react';
import { renderJSXToClientJSX, stringifyJSX } from './utils'
import { Layout, IndexPage, PostPage } from './components'
import { renderToString } from 'react-dom/server';
import { renderToPipeableStream } from "react-server-dom-webpack/server.node"
// export async function htmlGenerator(url) {
// let jsx = <Router url={url} />
// const clientJSX = await renderJSXToClientJSX(jsx);
// let html = await renderToString(clientJSX);
// // 拼接到脚本代码中
// const clientJSXString = JSON.stringify(clientJSX, stringifyJSX);
// html += `<script>window.__INITIAL_CLIENT_JSX_STRING__ = `;
// html += JSON.stringify(clientJSXString).replace(/</g, "\\u003c");
// html += `</script>`;
// html += `
// <script type="importmap">
// {
// "imports": {
// "react": "https://esm.sh/react@18.2.0",
// "react-dom/client": "https://esm.sh/react-dom@18.2.0/client?dev"
// }
// }
// </script>
// <script type="module" src="/client.js"></script>
// `;
// return html;
// }
export function jsxGenerator(url) {
return renderToPipeableStream(<Router url={url} />)
}
function Router({ url }) {
let page;
if (url.pathname === "/") {
page = <IndexPage />;
} else {
const slug = url.pathname.slice(1);
page = <PostPage slug={slug} />;
}
return <Layout>{page}</Layout>;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。