2017-11-27 2 views
1

Folgendes ist mir unklar. Bisher sehe ich keine Reactjs-Komponenten, die in Ansichten eingebettet sind, sondern nur in Single Page Applications.Laravel + ReactJS lose Komponenten in den Blattansichten. Eine gute Praxis?

Ich frage mich, ob man Reactjs in einer Laravel-Anwendung in Kombination mit der Blade-Template-Engine verwenden könnte? Ich habe ein Laravel-Projekt und finde es gut, wie ReactJS an das DOM bindet. Aber ich brauche kein komplettes JS SPA.

Ist es also möglich, verschiedene ReactJs-Komponenten in Blade-Ansichten zu verwenden? Zum Beispiel eine React-Table-Komponente und eine Header-Message-Komponente, die auch miteinander kommunizieren können.

+0

Was ist der Grund, warum Sie React mit Laravel verwenden möchten? – Gijsberts

+0

Da die Ansichten bestimmte Komponenten haben, wie Tabellen, die alle Arten von JavaScript/Ajax-basierten Aktionen ausführen. Ich mag die DOM-Bindung und Struktur, die React erstellt. Machen Sie Komponenten daraus, anstatt die DOM- und Bindungsereignishandler zu durchsuchen, wie Sie es zum Beispiel mit jQuery machen. Also ich mag die Idee von JS-Komponenten auf der Seite. Aber ein SPA + API fühlt sich an wie Overkill. – Floris

+2

Nun, ich persönlich habe React nie in einem Laravel Projekt benutzt, aber ich habe Vue tatsächlich benutzt und das mag ich auch. Vue ist in ein neues Projekt integriert und funktioniert sofort. Außerdem bietet Vue etwas, das "Inline-Vorlagen" genannt wird. Sie sollten es überprüfen. – Gijsberts

Antwort

0

Es gibt eine package, die genau das tut.

Allerdings würde ich argumentieren, es wäre eine bessere Praxis, wenn Sie das Front-End und Back-End vollständig trennen. Sie können also Laravel verwenden, um die Daten mithilfe von REST-API-Endpunkten bereitzustellen und dann alles mithilfe einer React-App anzuzeigen.

Auf diese Weise werden sie lose gekoppelt und wenn Sie jemals eine für die andere austauschen möchten (zB React for Angular austauschen), dann wäre es viel einfacher, da Ihre API-Endpunkte überhaupt nicht geändert werden müssten .

EDIT: Einige Vorteile einer Maden CMS (aus pantheon.io):

von Verantwortung für die User Experience Verschiebung vollständig in den Browser stellt die Maden Modell eine Reihe von Vorteilen:

  • Wert: zukunftssichere Ihre Website-Implementierung, können Sie Redesign der Website ohne die Umsetzung der CMS
  • Sets Frontend Entwickler frei von die Konventionen und Strukturen des Backends. Headless Entwicklung beseitigt nicht nur "div-itis", es gibt Frontend-Spezialisten volle Kontrolle über die Benutzererfahrung mit ihren nativen Tools.
  • Beschleunigt die Site, indem die Anzeigelogik auf die Clientseite verschoben und das Back-End optimiert wird. Eine Anwendung, die auf die Bereitstellung des Inhalts ausgerichtet ist, kann viel reaktionsschneller sein als eine Anwendung, die vollständig formatierte Antworten basierend auf komplexen Regeln erstellt.
  • Erzeugt wahre interaktive Erfahrungen für Benutzer durch die Verwendung Ihrer Website zu funktionsfähigen In-Browser-Anwendungen. Das Backend wird zum System von Datensatz und "State Machine", aber Hin-und-her-Interaktion passiert Echtzeit im Browser.

Lassen Sie sagen auch Einheimischer mit einer mobilen App aufbauen wollen reagieren, die die gleiche zugrunde liegende Code-Basis verwenden würden als Web-App reagieren. Wenn Sie über ein entkoppeltes CMS verfügen, können Sie in Ihrem Back-End nur Daten bereitstellen, ohne dass Sie sich über Inhaltstypen, Antwortformate usw. Gedanken machen müssen. Tatsächlich können Sie mit React Native telefonieren Sie können die gleiche React-Codebasis für die mobile App zusammen mit der Web-App verwenden, und Sie müssten nur einige Ansichten ändern.

Es ist eine gute Möglichkeit, Ihren Code mit besserer Modularität und Trennung von Bedenken wieder zu verwenden.

+0

Aber was ist der Vorteil einer SPA + API im Vergleich zu MVC mit losen React-Komponenten. Wenn ich möchte, könnte ich diese React-Komponenten immer noch durch Angular-Komponenten ersetzen. Auf diese Weise könnte die Web-Anwendung auch ohne JavaScript sehr gut funktionieren. So unterstützt es die progressive Enhancement-Idee. – Floris

+0

Ich habe meine Antwort aktualisiert, um einige Vorteile eines kopflosen CMS zu zeigen. – user3574492

+0

@Floris 'die Web-Anwendung wäre immer noch in der Lage, sehr grundsätzlich ohne JavaScript zu funktionieren, aber Sie wollen React-Komponenten verwenden, so dass Sie JavaScript in jeder Hinsicht verwenden werden? – user3574492