Das Generieren statischer Seiten ist eine vorweggenommene Verwendung von React, wie in der Dokumentation für erwähnt React.renderToStaticMarkup
Ähnlich renderToString
, außer dass dadurch keine zusätzlichen DOM-Attribute erstellt werden, wie sie data-react-id
React intern verwendet. Dies ist nützlich, wenn Sie React als einfachen statischen Seitengenerator verwenden möchten, da durch das Entfernen der zusätzlichen Attribute viele Bytes gespart werden können.
Einige haben benannt, um hier Overkill zu reagieren. Wenn ich jedoch etwas Totes will, habe ich kein Problem damit, es zu übertreiben. Die Tatsache, dass eine Reaktion weit mehr kann, als für diesen Anwendungsfall erforderlich ist, spricht nicht gegen eine Reaktion.
Es können jedoch Probleme auftreten, wenn Sie asynchronen Code ausführen möchten. Stellen wir uns folgendes vor:
function SchoolClass({classId}) {
const students = await query("SELECT name FROM student WHERE class = ?", classId);
return <ul>
{_.map(students, ({name}) => <li>{name}</li>}
</ul>
}
Dies funktioniert jedoch nicht, da die Funktion ein Promise und kein React-Element zurückgibt und daher nicht mit React kompatibel ist. Wenn Sie ein statisches Site-Generator-Framework im React-Stil entwickeln würden, würden Sie dies wahrscheinlich zulassen. Da sich React jedoch auf Webapp-Clients konzentriert, ist dies nicht zulässig.