renderToStaticNodeStream

renderToStaticNodeStream рендерить неінтерактивне дерево React у Читабельний потік Node.js.

const stream = renderToStaticNodeStream(reactNode)

Довідник

renderToStaticNodeStream(reactNode)

На сервері викличте renderToStaticNodeStream, щоб отримати читабельний потік Node.js.

import { renderToStaticNodeStream } from 'react-dom/server';

const stream = renderToStaticNodeStream(<Page />);
stream.pipe(response);

Дивіться більше прикладів нижче.

Потік створить неінтерактивне HTML-виведення ваших React-компонентів.

Параметри

  • reactNode: Вузол React, який ви хочете відрендерити в HTML. Наприклад, JSX-елемент типу <Page />.

  • .
  • опція опції: Об'єкт для серверного рендерингу.

    • optional identifierPrefix: Рядковий префікс, який React використовує для ідентифікаторів, згенерованих useId. Корисно для уникнення конфліктів при використанні декількох коренів на одній сторінці.

Повернення

Поток читання Node.js , який виводить рядок HTML. Результуючий HTML не може бути гідратований на клієнтській стороні.

Застереження

  • renderToStaticNodeStream виведення не може бути гідратованим.

  • Цей метод чекатиме на завершення всіх меж підвішеного стану перш ніж повертати будь-яке виведення.

  • Починаючи з React 18, цей метод буферизує все своє виведення, тому він фактично не надає жодних переваг для потокового передавання

  • Повернутий потік - це байтовий потік у кодуванні utf-8. Якщо вам потрібен потік в іншому кодуванні, зверніть увагу на проект iconv-lite, який надає потоки transform для перекодування тексту.


Використання

Відображення React-дерева як статичного HTML до потоку читання Node.js

Викличте renderToStaticNodeStream, щоб отримати читабельний потік Node.js , який ви можете передати до відповіді вашого сервера:

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);
});

Потік буде створювати початковий неінтерактивне HTML-виведення ваших React-компонентів.

Цей метод рендерить неінтерактивний HTML, який не можна гідратувати. Це корисно, якщо ви хочете використовувати React як простий генератор статичних сторінок, або якщо ви рендерите повністю статичний вміст, наприклад, листи.

Інтерактивні програми повинні використовувати renderToPipeableStream на сервері та hydrateRoot на клієнтській стороні.