vue tutorial significado knockout backbone javascript backbone.js knockout.js javascriptmvc

javascript - tutorial - knockout significado



BackboneJS vs JavaScriptMVC vs KnockoutJS (2)

Quiero usar un marco de JavaScript para una aplicación web compleja. He estado buscando en Backbone.js, knockout.js y JavaScriptMVC. Siendo bastante nuevo en aplicaciones web pesadas de JavaScript del lado del cliente, no estoy seguro de cuál elegir. Cada uno tiene un enfoque bastante diferente para separar las preocupaciones. Model / View / Controller vs Model / View / ViewModel vs Model / View / Collection.

¿Qué piensan ustedes? ¿Cuáles son los factores decisivos? ¿Cuál sería el más fácil de recoger? ¿Cómo ha sido tu experiencia?


No puedes equivocarte de ninguna manera, especialmente si estás creando una interfaz de usuario javascript compleja. Si elige no usar ninguno de los dos, es probable que termine con un montón de código difícil de depurar. Personalmente, me gusta Backbone, pero son ligeras y te permiten libertad en tu lenguaje de plantillas (uso plantillas JQuery). Creo que lo que me hizo elegir Backbone fue la forma en que Knockout combinó sus componentes con su html:

<span data-bind="text: myItems().count"></span>

Puedes evitar usar constructos como los anteriores con Knockout, pero eso fue suficiente para lanzarme hacia Backbone. También me gustó el hecho de que la red troncal tiene dependencias tanto de guiones bajos como de jQuery que ya estaban en uso en mis proyectos.


Para basarse en el comentario de HostDude, es una característica, no un error :) Parte del concepto de eliminación directa es que hay una capa entre su Controlador / Modelo y la Vista. Esto nos permite modular nuestro HTML en pequeños componentes que incluyen la asignación de datos.

Así que sí, los enlaces JS se mezclan, pero no se mezclan en HTML en bruto, sino que se agregan a pequeñas plantillas Jquery modularizadas. Al agregar esos enlaces de datos explícitamente en el nivel de la plantilla de jQuery, tenemos control total sobre lo que se asigna a qué, sin perturbar nuestro modelo de datos de aplicación subyacente en absoluto :) ¡Me encanta Knockout!