renderToNodeStream¶
Устарело
Этот API будет удален в одной из будущих основных версий React. Вместо него используйте renderToPipeableStream
.
renderToNodeStream
рендерит дерево React в Node.js Readable Stream.
1 |
|
Описание¶
renderToNodeStream(reactNode)
¶
На сервере вызовите renderToNodeStream
, чтобы получить Node.js Readable Stream, который вы можете передать в ответ.
1 2 3 4 |
|
На клиенте вызовите hydrateRoot
, чтобы сделать сгенерированный сервером HTML интерактивным.
Параметры
reactNode
: Узел React, который вы хотите отобразить в HTML. Например, JSX-элемент типа<App />
.
Возвращает
Node.js Readable Stream, который выводит строку HTML.
Ограничения
- Этот метод будет ждать завершения всех Suspense boundaries, прежде чем вернуть любой вывод.
- Начиная с React 18, этот метод буферизирует весь свой вывод, поэтому он не обеспечивает никаких преимуществ потоковой передачи. Поэтому рекомендуется вместо него перейти на
renderToPipeableStream
. - Возвращаемый поток - это поток байтов, закодированный в utf-8. Если вам нужен поток в другой кодировке, обратите внимание на проект типа iconv-lite, который предоставляет потоки преобразования для перекодировки текста.
Использование¶
Рендеринг дерева React в формате HTML в читаемый поток Node.js¶
Вызовите renderToNodeStream
для получения Node.js Readable Stream, который вы можете направить в ответ вашего сервера:
1 2 3 4 5 6 7 |
|
Этот поток будет создавать первоначальный неинтерактивный HTML-вывод ваших компонентов React. На клиенте вам нужно будет вызвать hydrateRoot
, чтобы гидратировать этот сгенерированный сервером HTML и сделать его интерактивным.
Источник — https://react.dev/reference/react-dom/server/renderToNodeStream