Генерация статических страниц является ожидаемым использованием React, как указано в документации для React.renderToStaticMarkup
Аналогично renderToString
, за исключением того, что это не создает дополнительных атрибутов DOM, таких как data-react-id
, которые React использует внутри. Это полезно, если вы хотите использовать React в качестве простого статического генератора страниц, так как удаление дополнительных атрибутов может сэкономить много байтов.
Некоторые из них считают использование реагировать здесь излишним. Однако, когда я хочу что-то мертвое, у меня нет проблем с его уничтожением. Тот факт, что реакция может сделать гораздо больше, чем необходимо для этого варианта использования, не является аргументом против реакции.
Однако могут возникнуть проблемы, если вы хотите выполнить асинхронный код. Давайте представим следующее:
function SchoolClass({classId}) {
const students = await query("SELECT name FROM student WHERE class = ?", classId);
return <ul>
{_.map(students, ({name}) => <li>{name}</li>}
</ul>
}
Но это не сработает, потому что функция возвращает Promise, а не элемент React, и поэтому не совместима с React. Если бы вы разрабатывали фреймворк статического генератора сайтов в стиле React, вы бы, вероятно, допустили это. Однако, поскольку React ориентирован на клиентов веб-приложений, это запрещено.