Nella maggior parte degli esempi di BackboneJS che ho visto, le visualizzazioni principali chiamano la funzione render()
nelle viste secondarie. Questo mi sembra un po 'strano. Forse è completamente per l'ottimizzazione o qualcosa del genere, ma non vedo perché l'ottimizzazione non possa aver luogo all'interno della visualizzazione figlio stessa. La vista bambino non dovrebbe essere responsabile di chiamare il proprio render()
? Sembra che in tutti i miei punti di vista io alla fine con qualcosa di simile:Modo appropriato per chiamare render() in BackboneJS
initialize: function() {
this.render();
}
Inoltre, se la mia vista padre aggiorna proprietà model
della vista bambino, come è il bambino supposto sapere che il modello è cambiato (e quindi render()
esigenze da chiamare)? Presumo che in questo caso il genitore sia costretto a chiamare il numero render()
del minore. Sebbene sia in qualche modo dedotto, perché il genitore dovrebbe sapere che il bambino ha bisogno di ri-renderizzare quando il suo modello viene cambiato? Sembra che chiamare la funzione di rendering della vista figlio sia al di fuori del dominio della vista genitore.
Grazie per la risposta! Riguardo al punto 1: Se il bambino si ricompone sempre immediatamente dopo init, eventi modello, eventi DOM, ecc. Dovrebbe sempre essere pronto per la vista genitore a fare tutto ciò che vuole con esso, no? Bullet 2: Personalmente preferirei che ogni bambino guardasse il modello in quanto il genitore non dovrebbe sapere che i bambini si preoccupano del modello. Punto 3: Vedi risposta al punto 1. La creazione di una nuova vista solo perché il modello sta cambiando sembra inefficiente. – Aaronius
Bene, come ho detto, è soggettivo - Backbone in realtà non definisce un modo "giusto" per fare le cose. Ma personalmente, preferisco presumere che i genitori siano consapevoli e responsabili dei loro figli immediati. – nrabinowitz
Inoltre, Bullet 3 - dipende davvero dall'app.Forse puoi memorizzare nella cache la vista precedente per dopo, per esempio. – nrabinowitz