renderToStaticMarkup
renderToStaticMarkup преобразует неинтерактивное дерево React в строку HTML.
const html = renderToStaticMarkup(reactNode, options?)
Ссылка
renderToStaticMarkup(reactNode, options?)
На сервере вызовите renderToStaticMarkup для рендеринга вашего приложения в HTML.
import { renderToStaticMarkup } from 'react-dom/server';
const html = renderToStaticMarkup(<Page />); В результате будет получен неинтерактивный HTML-вывод ваших компонентов React.
См. дополнительные примеры ниже.
Параметры
-
reactNode: Узел React, который вы хотите преобразовать в HTML. Например, JSX-узел, такой как<Page />. -
необязательно
options: Объект для серверного рендеринга.-
необязательно
identifierPrefix: Строковый префикс, который React использует для идентификаторов, сгенерированных функциейuseId. Полезно для предотвращения конфликтов при использовании нескольких корней на одной странице.
-
необязательно
Возвращаемое значение
Строка HTML.
Ограничения
-
renderToStaticMarkupвывод не может быть гидратирован. -
renderToStaticMarkupподдерживает ограниченное количество возможностей Suspense. Если компонент приостанавливается,renderToStaticMarkupсразу отправляет свой резервный вариант в виде HTML. -
renderToStaticMarkupработает в браузере, но использование в клиентском коде не рекомендуется. Если вам нужно преобразовать компонент в HTML в браузере, получите HTML, рендеринг в узел DOM.
Использование
Рендеринг неинтерактивного дерева React в строку HTML
Вызовите renderToStaticMarkup для рендеринга вашего приложения в строку HTML, которую можно отправить в ответ сервера:
import { renderToStaticMarkup } from 'react-dom/server';
// The route handler syntax depends on your backend framework
app.use('/', (request, response) => {
const html = renderToStaticMarkup(<Page />);
response.send(html);
}); Это создаст начальный неинтерактивный HTML-вывод ваших компонентов React.
Опасность
Этот метод рендерит неинтерактивный HTML, который нельзя гидратировать. Это полезно, если вы хотите использовать React в качестве простого статического генератора страниц или если вы рендерите полностью статическое содержимое, например, электронные письма.
Интерактивные приложения должны использовать renderToString на сервере и hydrateRoot на клиенте.
© 2013–present Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://18.react.dev/reference/react-dom/server/renderToStaticMarkup