2016-05-29 12 views
5

Wir migrieren unsere Backbone-App, um React und Redux zu verwenden. Ich erstelle ein neues Feature mit React/Redux, aber es benötigt eine textInputView, die derzeit im Backbone ist. Diese textInputView ist sehr sperrig und hat eine erweiterte Funktionalität, die es mir jetzt nicht erlaubt, sie zu React zu portieren.Wie Rendern einer Backbone-Ansicht in einer React-Komponente?

Ich muss meine Backbone-Ansicht rendern und als Element in mein React-Modul einfügen. Meine Idee ist, die Backbone-Ansicht zu rendern und sie in die React-Komponente zu übergeben. Dann in meiner React-Komponente componentDidMount und componentDidUpdate Funktionen erstellen, die meine Backbone-Ansicht manuell an das DOM jedes Mal anfügen, wenn mein React-Element neu rendert.

Ich denke, das wird funktionieren, aber es scheint chaotisch. Gibt es sauberere Lösungen?

+0

Der Hauptzweck von Reacts besteht darin, das effiziente Rendern mithilfe des virtuellen DOMs sicherzustellen. Etwas anderes zu benutzen, um das Rendering durchzuführen, vereitelt den Zweck. Sie sind besser dran, Kollektionen oder Modelle von Backbone zu React zu übergeben, meiner bescheidenen Meinung nach. –

Antwort

5

Nur ein kurzer Blick auf dieses, da es immer noch unbeantwortet ist, und ich suchte nach ähnlichen Informationen. Ich denke, dass Ihre Lösung funktionieren wird, aber potenziell in Bezug auf die Leistung nachteilig sein kann.

Es ist nicht oft verwendet, aber React hat dangerouslySetInnerHTML, die hier verwendet werden könnte. Ich würde die Ansicht als Prop zu übergeben, verwenden Sie view.$el.html(), um die innerHTML-Zeichenfolge aus der nicht eingebundenen Ansicht abzurufen, und übergeben Sie das an dangerouslySetInnerHTML. Sie müssen sicherstellen, dass alle Event-Handler die Render- und Teardown-Funktion korrekt anhängen und lösen.

Verwandte Themen