Генерування статичних сторінок - це очікуване використання 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 орієнтований на клієнтів webapp, це заборонено.