2016-05-29 16 views
5

Stiamo migrando la nostra app Backbone per utilizzare React e Redux. Sto creando una nuova funzione usando React/Redux ma richiede un textInputView che è attualmente in Backbone. Questo testoInputView è molto voluminoso e ha funzionalità avanzate che mi impediscono di portarlo su React in questo momento.Come eseguire il rendering di una vista Backbone all'interno di un componente React?

Ho bisogno di rendere la mia vista Backbone e metterlo come elemento all'interno del mio modulo React. La mia idea è di rendere la vista Backbone e passarla nel componente React. Quindi nel mio componente React creiamo le funzioni e componentDidUpdate che aggiungeranno manualmente la mia vista Backbone al DOM ogni volta che il mio elemento React esegue nuovamente il rendering.

Penso che funzionerà ma sembra disordinato. Ci sono soluzioni più pulite?

+0

Lo scopo principale di React è quello di occuparsi del rendering in modo efficiente utilizzando il DOM virtuale. Usare qualcos'altro per eseguire il rendering sconfigge lo scopo. È meglio passare collezioni o modelli da Backbone a React, a mio modesto parere. –

risposta

5

Solo una veloce presa su questo dato che è ancora senza risposta, e stavo cercando informazioni simili. Penso che la tua soluzione funzionerà ma potrebbe essere dannosa in termini di prestazioni.

Non è spesso utilizzato, ma React ha dangerouslySetInnerHTML che potrebbe essere utilizzato qui. Passerei alla vista come sostegno, utilizzare view.$el.html() per recuperare la stringa innerHTML dalla vista non montata e passarla a dangerouslySetInnerHTML. Dovrai assicurarti che tutti i tuoi gestori di eventi si attacchino e scolleghi correttamente durante il rendering e il teardown.