Pregunta

Estoy adoptando Backbone.js para rendir un pequeño rincón de un gran aplicación web existente. Si esto va bien, puedo ver Backbone.js crecimiento para abarcar la totalidad de la aplicación, dando una estructura muy necesaria para una aplicación cultivados orgánicamente. Ese es el prefacio. Ahora para el problema:

Tengo un cuadro de selección que permite al usuario seleccionar un plan de lectura. Cuando la selección cambia, la vista se actualiza un texto descriptivo, una interfaz de calendario, y un widget pequeño para marcar las lecturas de hoy lo más completo. El widget tendrá una casilla para cada lectura (uno o más) en la entrada de hoy y un botón para continuar con la lectura del día siguiente. (Se puede ver la versión actual, no Backbone de esta interfaz (menos el esquema de terminación) en el lado derecho de la la aplicación existente .

¿Cuál es el nivel de detalle apropiado para cada vista? He identificado los siguientes "bits" complicados:

  • El propio Tab, que abarca todos los controles contenidos.
  • La caja de selección
  • El texto descriptivo, que responde a la caja de selección
  • El calendario, que responde a la caja de selección
  • flash Las lecturas, que responde a la caja de selección, y contiene:
    • Opcionalmente, un botón "Inicio", que activa el plan actual.
    • Cuando se activa, una o más casillas de verificación correspondientes a las lecturas individuales dentro de la entrada de hoy.
    • Cuando se activa, un botón "Siguiente" que completa la entrada de hoy y muestra la siguiente.

En caso de cada uno de estos puntos de bala obtener su propio punto de vista? Sólo las piezas principales (pestaña, seleccionar, widgets)? La primera dará lugar a un buen número de Vistas. El primero parece que podría conducir a Ver excesivamente complicadas implementaciones. Lo que es mejor?

Nota: que se dan cuenta de esto podría ser interpretado como una cuestión tremendamente subjetivo, pero todavía estoy envolver mi cabeza alrededor de los patrones Backbone.js y Javascript / DOM MVC, y espero que existe una estrecha "esto es lo que se pretende / funciona mejor" de los profesionales con más experiencia Backbone.js. Gracias!

¿Fue útil?

Solución

No hay una respuesta definitiva a su pregunta. Puede echar un vistazo a la granularidad de SproutCore para exemples.

También puede ver http://vimeo.com/17186379 donde Yehuda Katz ilustrar las dificultades de actualización diferentes piezas de la página.

Una forma de verlo sería comprobar qué parte se debe actualizar con diferentes modelos de cambio / de los acontecimientos y tratar de minimizar la prestación re.

En este momento no hay buenas respuestas como usted ha señalado;)

Otros consejos

En general, la granularidad de sus puntos de vista dependerá de encontrar un equilibrio entre la complejidad de la pieza en particular de la interfaz de usuario, y el exceso de fragmentación de vistas en pequeños pedazos. Lo que probablemente no utilizar una vista de algo tan pequeño como un botón (una clase CSS es todo lo que realmente necesita para eso).

En su caso particular, probablemente tendría una vista para el widget de calendario - por lo que se puede reutilizar fácilmente en otros lugares de la aplicación - y una vista de toda la pestaña Devociones. El resto se puede hacer a través de suceso de unión.

En cuanto a las actualizaciones de modelo y re-representación, toda la idea de la espina dorsal es separar esa preocupación desde los puntos de vista. Modelos emiten eventos "cambio" cuando sus atributos de cambio, y lo que resultan ser vistas en la página en el momento, y están mostrando que los datos particulares del modelo, serán notificados del cambio, y pueden actualizarse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top