Ist react.js für eine statische inhaltsgesteuerte Site sinnvoll?

14

Ich bin ziemlich begeistert vom Modell "react.js", weil es die DOM-Manipulation so reibungslos und nachvollziehbar macht. Aber ich frage mich, wie es für eine Site genutzt werden kann, die weitgehend statisch ist und große Textblöcke und Bilder enthält, die sich nicht bewegen. Würde es nur in die Quere kommen? Es scheint umständlich, Komponenten mit KBs von Text in ihrem Zustand zu haben.

jiggy
quelle
4
Sie haben einen Hammer und überlegen, ob diese Schraube als Nagel verwendet werden könnte. Normalerweise sollten technologiebezogene Entscheidungen nach dem Motto „Unsere Anforderungen sind X, Y, Z. Welche Technologien ermöglichen es uns, zum niedrigsten Preis dorthin zu gelangen?“ Getroffen werden mir ein Problem? ”. Die Tatsache, dass Sie bereits Erfahrung mit React haben, spricht für die Entscheidung, aber welche Anforderungen würde sie erfüllen? Welchen Wert würde es dem Kunden oder Benutzer hinzufügen?
Amon
4
Nun, das versuche ich herauszufinden. Reagiert ein Hammer oder ein Werkzeugkasten? Es zeichnet sich sicherlich durch die Art von Anwendungsfällen aus, die Facebook hat, und ich habe nichts gesehen, was darauf hindeutet, dass es in anderen Fällen scheiße wäre. Es ist definitiv weniger überzeugend, aber das heißt nicht, dass es nicht vollkommen in Ordnung ist.
jiggy
1
Ich habe tatsächlich die gleichen Fragen. Ich mag alles an React-Komponenten, aber für inhaltsgesteuerte Websites mit nur wenigen Javascript-Zeilen scheint es sich zu sehr auf die HTML-JS-Kopplung und mehr auf Zustände und Ereignisse als auf sauberes HTML-CSS zu konzentrieren. Ich würde so etwas wie React Components in einer anderen Template-Sprache lieben.
JeroenVdb

Antworten:

10

Wissen Sie, was Sie tun möchten, und wählen Sie dann die Technologie.

Aus dieser Sicht scheint React.js für ein größtenteils statisches Web zu viel zu sein.

Von der React-Website:

Wir haben React entwickelt, um ein Problem zu lösen: das Erstellen großer Anwendungen mit Daten, die sich im Laufe der Zeit ändern.

React ist ein Hammer für einen bestimmten Nagel. Dies würde bedeuten, dass die Erstellung einer meist statischen Website behindert wird.

Miyamoto Akira
quelle
2

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-idReact 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.

Winston Ewert
quelle