2016-08-09 68 views
2

Ich habe ein neues Projekt gestartet, in dem ich React and Rails verwenden möchte. Dieses Projekt ist auf der kleinen Seite und erfordert einige grundlegende interaktive UI, daher reagieren. Soweit ich weiß, gibt es zwei Möglichkeiten, wie ich mit dieser beginnen könnte:Erste Schritte mit React and Rails

  • die reagieren Schienen gem Verwendung und die in View Helfern
  • einen Rails-API erstellen gebaut verwenden und Reagieren/Flux Frontend app

Ich habe jedoch ein paar Fragen. In keiner bestimmten Reihenfolge:

  • React-Schienen scheinen die einfachere Lösung zu sein, aber welche Nachteile hätte ich?
  • Ich komme aus einem Rails and Ember-Hintergrund, daher macht die Rails API + React FE-Lösung für mich einen architektonischen Sinn. Aber mit dem React-Rails-Juwel bin ich verwirrt darüber, wie einige Dinge gemacht werden sollten. In erster Linie, wie gehe ich mit dem Routing um? Ich nehme an, dass ich keinen Zugang zu irgendwelchen reaktiven Weghelfern haben werde und Wege als Requisiten in die reaktiven Komponenten geben muss?

Vielen Dank im Voraus!

+0

Werfen Sie einen Blick auf [dieses Tutorial] (https://www.airpair.com/reactjs/posts/reactjs-a-guide-for-rails-developers) und dieses [Repo] (https: // github. com/raelgc/rails-react-tutorial) (enthält 'JSX'-Version von Codebeispielen aus dem Tutorial). –

Antwort

2

Für ein kleines Projekt React-Rails, https://github.com/reactjs/react-rails, ist großartig, ich habe es in der Produktion des letzten Jahres auf 2 Seiten verwendet, die etwa hunderttausend Besucher pro Monat bekommen und ich hatte keine Probleme.

Das gesagt, wenn Sie Redux, React-Router oder Flux nicht verwenden möchten React-Rails gehen die API-Route.

Meine Regel ist, wenn Sie nur React-Komponenten verwenden, dann verwenden Sie React-Rails.

Wenn Sie eine Redux, Flux App machen, dann machen Sie einfach eine Frontend-App.

1

Es hängt davon ab, wie viel Ihr Server tut und auch von Ihrem Team. Wenn Sie viel Geschäftslogik haben, die Sie in Rails behalten möchten, dann sollten Sie diese Logik auf einem dedizierten Rails-Server ausführen lassen und als APIs verfügbar machen.

Sie können dann einen NodeJS-Server haben, der nichts anderes tut, als Daten von APIs abzurufen und React zum Senden an die Benutzer rendern zu lassen. Die einzige Interaktion zwischen react und rails erfolgt über die APIs als JSON. Dieses grundlegende Setup wird sehr gut skalieren und ist ein ziemlich einfaches mentales Modell.

Wenn das Projekt größer wird, bedeutet dies, dass JS-only-Entwickler nur in JS arbeiten können und Rails-Entwickler nur in Rails arbeiten. Wenn Sie sich später von Rails oder React entfernen möchten, gibt es keine zusätzliche Komplexität.

ODER

Wenn alle Ihre Devs sind Reagieren + Rails und das Projekt ist ein bisschen klein für mehrere Server, dann denke ich reagieren-Schienen mit Ihren Seiten zu servieren ist eine feine Lösung.