Ich bin neu bei React.js und habe Mühe, einige Kernkonzepte zu verstehen, um zu entscheiden, ob wir diese Bibliothek für unsere Anwendung verwenden sollen. Mein Hauptproblem ist die Aktualisierung in einem Modell, das vom Server abgerufen wird.Neue Serverdaten an react.js-Komponenten übergeben
Stellen Sie sich vor, dass ich eine Seite habe, die fünf verschiedene Modelle anzeigen soll. Ich habe es in der in diesem Artikel beschriebenen Weise gebaut: http://facebook.github.io/react/blog/2013/11/05/thinking-in-react.html, also habe ich "root" -Komponente, wo alle 5 Modelle bestanden und Requisiten verwenden, die sie zu den Komponenten hinuntergehen, die diese Modelle halten. Also, jetzt 2 Modelle aktualisiert (ich erhalte diese Ereignisse von meinem Modell-Code, die außerhalb der reagierenden Komponenten leben) und ich muss dies auf der Benutzeroberfläche widerspiegeln. Was ist der beste Weg, dies zu tun?
Ich denke über folgende Möglichkeiten:
- Run renderComponent mit neuen Daten erneut und setze auf dem DOM diff reagieren Techniken. Ich habe damit ein Problem, da ich dies bei jeder kleinen Änderung der Daten tun muss.
- Call setState für die Komponenten, die diese Modelle halten. Auf diese Weise werden Daten nicht prop, sondern ein Zustand, der (von dem, was ich verstehe) keine gute Praxis ist. Außerdem sehe ich keine Möglichkeit, die Kind-Komponente außerhalb der Root-Komponente zu referenzieren.
- Mit mehreren renderComponent-Aufrufe, so auf diese Weise habe ich Zugriff auf setProps für alle diese Komponente. Aber dann muss ich etwas Templating-Arbeit machen (um alle Container auf der Seite verfügbar zu haben) und es tötet die ganze Reaktionsidee.
- Mit einer Wurzel-Komponente, die alle möglichen Modelle in der Anwendung für die Benutzer angezeigt und rufen SetProps zum Ändern von Modellen. Mein Anliegen hier, dass diese Komponente ziemlich groß wachsen und sich als „Spaghetti“ irgendwann + Bedenken von Punkt 1.
Vielen Dank im Voraus und hoffe ich in der Lage war eindeutig zu erklären, mein Problem.
Verwendet Ihre Modellschicht Ereignisse? Wenn ja, können Sie sie zum Auslösen eines Rendervorgangs verwenden. – krs
Ich habe eine ähnliche Frage bezüglich der Verwendung von Backbone-Modellen mit React hinzugefügt und wie Sie die Ansichten aktualisieren sollten, wenn das Modell http://stackoverflow.com/questions/20371566/handling-backbone-model-collection-changes-in-react aktualisiert -js –
Haben Sie eine Lösung gefunden? – copndz