En la mayoría de ejemplos de BackboneJS que he visto, las vistas principales llaman a la función render()
en vistas secundarias. Esto me parece un poco extraño. Tal vez sea completamente para optimización o algo así, pero no veo por qué la optimización no podría tener lugar dentro de la vista hija. ¿No debería la vista infantil ser responsable de llamar a su propio render()
? Parece que en todos mis puntos de vista termino con algo como:Forma apropiada de invocar render() en BackboneJS
initialize: function() {
this.render();
}
Además, si mi vista padre actualiza la propiedad de la vista del niño model
, cómo es el niño supuesto saber que el modelo ha cambiado (y por lo tanto render()
necesidades ser llamado)? Supongo que en este caso el padre se ve obligado a llamar al render()
del niño. Aunque se infiere de algún modo, ¿por qué los padres deben saber que el niño debe volver a hacer el diseño cuando se modifique su modelo? Parece que llamar a la función de representación de la vista secundaria está fuera del dominio de la vista principal.
¡Gracias por responder! Respecto a la viñeta 1: si el niño siempre se vuelve a renderizar inmediatamente después del inicio, modelo de eventos, eventos DOM, etc., siempre debe estar listo para que la vista principal haga todo lo que quiera con eso, ¿no? Viñeta 2: preferiría que cada niño observara el modelo, ya que el padre no debería saber que a los niños les importa el modelo. Viñeta 3: vea la respuesta a la viñeta 1. Crear una nueva vista simplemente porque el modelo está cambiando parece ineficiente. – Aaronius
Bueno, como dije, es subjetivo: el Backbone realmente no define una forma "correcta" de hacer las cosas. Pero personalmente, prefiero suponer que los padres son conscientes y responsables de sus hijos más cercanos. – nrabinowitz
Además, Bullet 3: realmente depende de la aplicación.Tal vez pueda almacenar en caché la vista anterior para más adelante, por ejemplo. – nrabinowitz