Wann man ein React-Framework wie Next oder Gatsby vs. Create React App verwenden sollte [closed]

Lesezeit: 7 Minuten

Benutzer-Avatar
Vince Picone

Ich bin in einer Art Rapid-Prototyping-Phase meiner React/Javascript-Lernerfahrung. Ich habe mich gefragt, wann die Leute nach einem Framework wie Next.js oder Gatsby.js im Vergleich zur standardmäßigen Create React App greifen würden.

Ich mag die seitenbasierte Strukturierung und die Möglichkeit, Links von Next.js vorab zu laden. Ich bin mir jedoch nicht sicher, wann Sie im Gegensatz zu CRA nach Next greifen oder sogar CRA auswerfen würden.

Vielen Dank!

  • Willkommen bei stackoverflow – schön, dass es dich gibt. Bitte lesen Sie Wie stelle ich eine gute Frage? und So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel, um den Inhalt von Stackoverflows auf dem höchstmöglichen Niveau zu halten und Ihre Chancen zu erhöhen, eine angemessene Antwort zu erhalten. Ihre Frage ist viel zu allgemein, denn um sie zu beantworten, sollte man Ihre spezifischen Anforderungen kennen.

    – Axel

    2. September 2017 um 2:30 Uhr

  • Ich hatte gehofft, einen Einblick zu bekommen, welche Anwendungsfälle genau dazu führen würden, dass jemand nach einem Framework wie next greift. Ich habe nicht unbedingt einen bestimmten Anwendungsfall im Kopf. Ich hatte eher gehofft, diese Art von Wissen aus den Antworten hier hervorzurufen.

    – Vince Picone

    2. September 2017 um 2:41 Uhr

  • Eigentlich nur ein Vorschlag: “React vs Next.js vs Gatsby.js” (oder so ähnlich) googeln und dann all die konkreten Fragen stellen, die hinterher oder zwischendurch noch unklar sind…

    – Axel

    2. September 2017 um 2:57 Uhr

Benutzer-Avatar
Parkar

Ich bin im selben Boot. Ich habe mit CRA angefangen, um ein SPA zu schaffen, das für den Anfang großartig war und die Lernkurve überstanden hat. Aber ich erkannte bald zwei wichtige Probleme:

  1. Teilen in sozialen Netzwerken: Ich konnte die OGP-Tags pro Route nicht ändern. Der Effekt davon ist, dass nur Ihre Basisroute (korrekt eingerichtet mit OGP-Tags), wenn sie in einem sozialen Netzwerk geteilt wird, die Karte (Twitter-Begriff) erzeugen kann, jede andere Route, die Sie teilen, wird grundsätzlich als leer angezeigt. Das gilt auch für Facebook und LinkedIn. Siehe hier.
  2. Suchmaschinenoptimierung: Obwohl es nur wenige Artikel über Suchmaschinen gibt, die Ihre SPA korrekt für die Indexierung crawlen können, war dies meiner Erfahrung nach nicht zufriedenstellend. Denn zB bei Google ist mir aufgefallen, dass nur die Startseite indexiert und nicht korrekt geparst wird. Separate Titel von separaten Elementen werden miteinander verkettet. Bing scheint es nicht indiziert zu haben. Möglicherweise wurde es von Google indiziert, weil ich die Startseite mit der Search Console von Google indiziert habe. Es ist keine praktikable Lösung, wenn ich für jede neue Seite oder nach einer Aktualisierung einer Seite manuell neu indizieren muss.

Create-React-App : Ein wirklich gutes Bootstrapper-Tool für den Einstieg in die Erstellung eines SPA.

Gatsby/React-Static : Ähnlich wie Create-React-App, erzeugt aber stattdessen HTML-Build-Ausgaben, also “Pre-Rendering”. Damit muss ich noch experimentieren. Ich hoffe, dass dies (1) und (2) lösen würde, da ich jetzt verschiedene OGP-Tags bereits im HTML haben kann, das von einem statischen Site-Server (S3/Azure Blobs/Github-Seiten) bereitgestellt wird, anstatt sie danach lokal zu ändern bringen. Ich bin mir noch nicht sicher, ob das funktionieren wird. Der zusätzliche Vorteil hier ist, dass der Benutzer eine bessere Leistung erfährt, da Gatsby bereits während der Erstellungszeit vorgerendert wird. (Möglicherweise kann jemand, der Erfahrung mit Gatsby hat, dies klären, oder ich werde diese Antwort bearbeiten, nachdem ich fertig bin.) Update (19.02.2018): Ich kann bestätigen, dass (1) von Gatsby.js gelöst wird, während es noch als Static gehostet wird Webseite.

Next.js : Wenn Gatsby (1) und (2) nicht löst, wird Next.js mein Fallback sein, um eine vollständige SSR-App zu erstellen. Das Problem hier ist, dass ich jetzt PaaS verwenden muss, um die Site zu hosten (z. B. Azure Web Apps oder AWS ElasticBeanStalk oder Heroku) anstelle eines statischen Site-Hosting-Service (Azure Blob, AWS S3, Github Pages). Dies ist etwas kostspieliger und erfordert etwas mehr Arbeit beim Einrichten von CI/CD-Pipelines.

Siehe auch diese Alternativen in den Dokumenten von CRA aufgeführt.

  • Gatsby oder Next.js werden bei richtiger Konfiguration Ihre beiden Probleme definitiv lösen. Ich empfehle Reaktionshelm für die Verwaltung von Meta-Tags ist es Teil der meisten Gatsby-Starter.

    – chmac

    19. Februar 2018 um 13:57 Uhr

  • Tolle Antwort~! Ich bin in dieser Phase (Entscheidung darüber, welches Framework ich abholen möchte). Dieses Thema ist einen Artikel wert! Wenn Sie es also ausführlich als eigenständigen Artikel schreiben könnten, teilen Sie es uns bitte mit~! Diagramme, Daten, Abbildungen werden sehr geschätzt! Vielen Dank.

    – Franva

    26. März 2018 um 23:56 Uhr


Benutzer-Avatar
Khaled Garbaya

Ich habe kürzlich selbst viel zu diesem Thema recherchiert, insbesondere zu create-react-app vs. Gatsby.js, und ich habe herausgefunden, dass Sie mit beiden Tools sofort Reaktionscode schreiben können, ohne sich zu viele Gedanken über die Einrichtung machen zu müssen. Allerdings bietet beispielsweise Gatsby darüber hinaus serverseitiges Rendering zur Build-Zeit, was für SEO entscheidend ist. Sie benötigen keinen Server, um Ihre Ansichten zu rendern, was bei Next.js der Fall ist, da sie bereits zur Erstellungszeit erstellt werden. Wenn ein Benutzer Ihre Website besucht, wird zuerst die HTML-Version geladen und sobald das Javascript geladen ist, wird Ihre Website zu einer voll funktionsfähigen React-Web-App.

Das Gute ist, dass sie alle dieselbe Ansichtsebene teilen, sodass Sie von einem Werkzeug zum anderen wechseln können. Du kannst nachschauen Umzug von create-react-app zu Gatsby.js was ins Detail geht.

Ich mache diese Forschung selbst. Mein Verständnis ist, dass Next.js serverseitiges Rendering standardmäßig bereitstellt. Create React App tut dies nicht, also müssen Sie Ihre eigene Lösung für SSR bereitstellen (für Dinge wie schnelleres Laden von Seiten und SEO).

  • Ich weiß, dass dies 2016 beantwortet wurde, aber die Antwort war damals nicht genau, wie sie es jetzt nicht ist. SSR ist für SEO nicht erforderlich. Sehen hier für einen großartigen Artikel, der diesen Mythos entlarvt (geschrieben, bevor diese Antwort veröffentlicht wurde). CRA unterstützt Code-Splitting, was das Laden von Seiten beschleunigt. Hoffentlich hat Ihre Recherche Sie zu einem besseren Verständnis geführt …

    – heute kleine Schritte

    11. Dezember 2017 um 15:12 Uhr


  • @smallstepstoday Das war mir nicht bewusst, danke für den Lesestoff!

    – Geben Sie einen Fehler ein

    12. Dezember 2017 um 16:50 Uhr

  • @smallstepstoday Nachdem ich den Artikel gelesen habe, denke ich immer noch, dass es ein Problem ist. Vielleicht war der Artikel nicht aktualisiert, als Sie ihn zum ersten Mal gelesen haben, aber ich wurde verlinkt news.ycombinator.com/item?id=12759605

    – Geben Sie einen Fehler ein

    12. Dezember 2017 um 16:52 Uhr

  • @typeonerror Im Laufe der Jahre wurde darüber diskutiert, aber viele wirklich gut informierte Leute in vielen führenden SEO-Unternehmen sagen etwas anderes. Ich glaube nicht, dass es sich lohnt, hier weiter zu diskutieren. Abgesehen davon, hier ist eine andere gutes Beispiel wovon ich spreche.

    – heute kleine Schritte

    16. Dezember 2017 um 1:35 Uhr

  • Ein letzter Kommentar … Ich war gerade im Google Structured Data Testing Tool und habe eine React-Anwendung getestet, die ich jetzt online habe. Ich füge Json+LD-Skripte dynamisch innerhalb bestimmter React-Komponenten hinzu. Das Tool erkennt diese Skripte korrekt, obwohl sie außerhalb der ursprünglichen index.html erstellt wurden. Das Tool fügt vor den dynamisch hinzugefügten Skripten einen Kommentar wie folgt ein: Für mich bestätigt dies, was die anderen sagen.

    – heute kleine Schritte

    16. Dezember 2017 um 21:19 Uhr

create-react-app eignet sich am besten für die Erstellung von Websites und mobilen Apps (native React-Apps), da viele Lernkurven verfügbar sind. Die anderen beiden sind die React Frameworks (wir können sagen).

Verwenden Sie Gatsby für Single-Page-Websites, die schneller und einfacher bereitzustellen sind. Verwenden Sie Next.js, während Sie mit REST-APIs arbeiten (glaube ich …)

Es liegt an dir. Ein guter Entwickler findet immer seinen Weg für eine einfache und schnelle Arbeit.

1031530cookie-checkWann man ein React-Framework wie Next oder Gatsby vs. Create React App verwenden sollte [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy