que developer backbone backbone.js

backbone.js - developer - Cambio de vistas en la red troncal para navegar entre páginas: ¿cuál es el camino correcto?



backbone routes (1)

Tomé la decisión de cambiar el enrutamiento de mi aplicación al lado del cliente en lugar de al lado del servidor. Esto significa que necesitaré una forma de cambiar de vista dentro y fuera de la página a medida que el usuario navega por el sitio. Lo único que pude encontrar que intenta documentar esto es este artículo: Cómo cambiar vistas usando Backbone.js

Veo cómo esto funcionaría, pero no creo que sea una buena forma de hacerlo. Quiero mantener mis puntos de vista, ya que ese es todo el punto, ¿verdad? ¿Tener vistas separadas para las partes distinguibles de su aplicación? Creo que tener un gran "ContentView" y luego simplemente incorporar cosas y rehacer es un poco crudo y evita toda la genial modularización que puede hacer de otra manera.

Entonces, ¿cuál es la mejor manera de hacerlo? Idealmente, quiero una función similar a la documentada en el artículo mencionado anteriormente, pero toma como punto de vista una vista de red troncal.


He escrito algunos artículos sobre este tema:

http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/

y uno más nuevo que toma la idea de esta publicación y la formaliza más:

http://lostechies.com/derickbailey/2011/12/12/composite-js-apps-regions-and-region-managers/

la reutilización de vistas es en realidad un antipatrón en la mayoría de los casos. Por lo general, hay un montón de código adicional y más crumble involucrado en la celebración para ver las instancias, para que se vuelvan a unir al DOM y manejen correctamente los eventos DOM registrados. Además, corre el riesgo de fugas de memoria (de lo que habla mi primer artículo) y destruye el rendimiento de la aplicación al utilizar demasiada memoria.

Si sus vistas utilizan un recurso "costoso", debe almacenar en caché ese recurso fuera de sus vistas y volver a utilizarlo. Sus opiniones deben ser baratas y rápidas para crear, renderizar, mostrar y destruir.