1 Punkte von GN⁺ 2023-09-03 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Artikel über die Erfahrungen und Erkenntnisse des Autors bei der Migration von 50.000 Codezeilen auf React Server Components (RSCs)
  • RSCs sind React-Komponenten, die auf dem Server statt auf dem Client ausgeführt werden, und bieten zwei wesentliche Vorteile gegenüber Server-Side Rendering (SSR)
    • Erstens ermöglichen RSCs Entwicklerinnen und Entwicklern, festzulegen, wo Code ausgeführt wird, wodurch sich die Bundle-Größe verringert und der Arbeitsaufwand während der Hydration reduziert wird
    • Zweitens machen Server Components das Datenladen in React einfacher und effizienter, indem sie Daten direkt innerhalb der Komponente abrufen und zum Client streamen
  • Allerdings gibt es bei der Nutzung von RSCs einige Einschränkungen. CSS-in-JS funktioniert in Server Components nicht, auf React Context kann nur in Client Components zugegriffen werden, und die Komplexität der Verwaltung des Ausführungsorts von Code kann herausfordernd sein
  • Der Autor schlägt einen dreistufigen Ansatz für die schrittweise Einführung von RSCs vor:
    • Die Anweisung "use client" an der Wurzel der App hinzufügen
    • Die Anweisung im Rendering-Baum so weit wie möglich nach unten verschieben
    • Fortgeschrittene Muster übernehmen, wenn Performance-Probleme auftreten
  • Trotz der zusätzlichen Komplexität kommt der Autor zu dem Schluss, dass die Vorteile von RSCs, etwa kleinere Bundle-Größen, schnellere Ausführung und fortgeschrittene Datenlade-Muster, die Kosten überwiegen können, wenn sich der Performance-Gewinn für das Team lohnt

1 Kommentare

 
GN⁺ 2023-09-03
Hacker-News-Kommentare
  • Der Artikel behandelt die Diskussion über die Umstellung von 50K Codezeilen auf React Server Components (RSCs).
  • Einige Nutzer erwähnten die Geschwindigkeit und Einfachheit des serverseitigen Renderings und wiesen darauf hin, dass der Client sofort sichtbares HTML erhält.
  • Es wurde vorgeschlagen, dass die Nutzung von Full-Stack- oder klassischen Web-Frameworks wie Rails, Django oder Laravel anstelle von RSCs eine schnellere und besser skalierbare Lösung sein könnte.
  • Einige Nutzer äußerten Bedenken über die Komplexität moderner Frameworks und erwähnten die umfangreichen Build- und Compile-Pipelines, die selbst für einfache Aufgaben nötig sind.
  • Nutzer teilten persönliche Erfahrungen mit next.js und dessen neuer app-Verzeichnis-Konfiguration und hoben hervor, wie schwierig es ist zu verstehen, wo die Verarbeitung stattfindet (Server oder Client), sowie die Probleme mit bestehenden React-Bibliotheken, die von Client-seitiger Ausführung ausgehen.
  • Einige Nutzer wiesen auf Bugs und Ecken und Kanten im neuen app-Directory-Paradigma von next.js hin, einschließlich Problemen im Zusammenhang mit dynamischen Routen und parallelen Routen.
  • Ein Nutzer erwähnte die Ähnlichkeit zwischen PHP und JavaScript und merkte an, dass sich JavaScript so weiterentwickelt hat, dass es ähnliche serverseitige Funktionen bietet, wenn auch mit mehr Abkürzungen und einer steileren Lernkurve.
  • Einige Nutzer stellten die Notwendigkeit infrage, React für Aufgaben zu verwenden, die auch mit einfacheren Tools wie statischen Site-Generatoren oder einem CMS mit Caching gelöst werden könnten.
  • Es gibt eine nostalgische Stimmung für die Zeit, als der Server alles renderte und CSS sowie JavaScript die Seite nach dem Rendern verbesserten.
  • Einige Nutzer äußerten die Ansicht, dass React immer komplexer wird, um mit moderneren, einfacheren und schnelleren Alternativen Schritt zu halten.
  • Es gibt eine Debatte darüber, React zum Rendern von HTML im Backend zu verwenden; einige Nutzer stellen die Notwendigkeit infrage, während andere die Vorteile gegenüber traditionellen Methoden verteidigen, bei denen der Server Inhalte zurückliefert.