renderToStaticNodeStream
renderToStaticNodeStream γ―γιγ€γ³γΏγ©γ―γγ£γγͺ React γγͺγΌγ Node.js οΏ½? Readable γΉγγͺγΌγ γ«γ¬γ³γγΌγγΎγγ
const stream = renderToStaticNodeStream(reactNode)γͺγγ‘γ¬γ³γΉ
renderToStaticNodeStream(reactNode)
γ΅γΌγδΈγ«γγγ¦γrenderToStaticNodeStream γεΌγ³εΊγγ¦ Node.js οΏ½? Readable γΉγγͺγΌγ γεεΎγγΎγγ
import { renderToStaticNodeStream } from 'react-dom/server';
const stream = renderToStaticNodeStream(<Page />);
stream.pipe(response);γοΏ½?γΉγγͺγΌγ γ―γReact γ³γ³γγΌγγ³γοΏ½?ιγ€γ³γΏγ©γ―γγ£γγͺ HTML εΊεγηζγγΎγγ
εΌζ°
reactNode: HTML γ«γ¬γ³γγΌγγγ React γγΌγγδΎγγ°γ<Page />οΏ½?γγγͺ JSX θ¦η΄ γ
θΏγε€
HTML ζεεγεΊεγγ Node.js οΏ½? Readable γΉγγͺγΌγ γη΅ζγ¨γγ¦εΎγγγ HTML γ―γ―γ©γ€γ’γ³γδΈγ§γγ€γγ¬γΌγ·γ§γ³γγγγ¨γ―γ§γγΎγγγ
注ζηΉ
-
renderToStaticNodeStreamοΏ½?εΊεγ―γγ€γγ¬γΌγ·γ§γ³γγγγ¨γγ§γγΎγγγ -
γοΏ½?γ‘γ½γγγ―γγγΉγ¦οΏ½?γ΅γΉγγ³γΉγγ¦γ³γγͺγοΏ½?οΏ½δΊγγγΎγ§εΊεγθΏγγγ«εΎ ζ©γγΎγγ
-
React 18 ζηΉγ«γγγ¦γγοΏ½?γ‘γ½γγγ―γγΉγ¦οΏ½?εΊεγγγγγ‘γͺγ³γ°γγγγγοΏ½?οΏ½ιγ«γ―γΉγγͺγΌγ γδ½Ώη¨γγε©ηΉγεΎγγγΎγγγ
-
θΏγγγγΉγγͺγΌγ γ― utf-8 γ§γ¨γ³γ³γΌγγγγγγ€γγΉγγͺγΌγ γ§γγδ»οΏ½?γ¨γ³γ³γΌγγ£γ³γ°οΏ½?γΉγγͺγΌγ γεΏ θ¦γͺε ΄εγ―γγγγΉγοΏ½?γγ©γ³γΉγ³γΌγγ£γ³γ°η¨οΏ½?ε€ζγΉγγͺγΌγ γζδΎγγ iconv-lite οΏ½?γγγͺγγγΈγ§γ―γγεη §γγ¦γγ γγγ
δ½Ώη¨ζ³
React γγͺγΌγιη HTML γ¨γγ¦ Node.js οΏ½? Readable γΉγγͺγΌγ γ«γ¬γ³γγΌγγ
renderToStaticNodeStream γεΌγ³εΊγγ¦γγ΅γΌγγγοΏ½?γ¬γΉγγ³γΉγ«γγ€γγ§γγ Node.js οΏ½? Readable γΉγγͺγΌγ γεεΎγγΎγγ
import { renderToStaticNodeStream } from 'react-dom/server';
// The route handler syntax depends on your backend framework
app.use('/', (request, response) => {
const stream = renderToStaticNodeStream(<Page />);
stream.pipe(response);
});γοΏ½?γΉγγͺγΌγ γ―γReact γ³γ³γγΌγγ³γοΏ½?ιγ€γ³γΏγ©γ―γγ£γγͺεζ HTML εΊεγηζγγΎγγ