javascript - react - Angular.js Backbone.js y otras bibliotecas MV*con patrones MV?
react vs angular vs bootstrap (2)
Soy bastante novato con la aplicación web, y más específicamente con este patrón MV*
. Estamos creando una aplicación web y estamos pensando en abandonar JQuery, no del todo, pero estamos tratando de implementar un lenguaje del lado del cliente con soporte MVC, MVVM o MVP. Básicamente algo que separa las vistas del modelo. Al ser nuevo en este patrón de MV*
me topé con este sitio .
Básicamente enumera (¡casi!) Todo el lenguaje / framework del lado del cliente que soporta este patrón MV*
, y después de visitarlo, estoy realmente confundido. Porque según este sitio ...
Al final del día, Ember.js es el único marco que tiene todo lo que deseo. Hace poco porté una aplicación Backbone.js relativamente pequeña a Ember.js y, a pesar de algunos problemas de rendimiento pequeños, estoy mucho más contento con la base de código resultante. Siendo defendido por Yehuda Katz, la comunidad alrededor de Ember.js también es increíble. Este es definitivamente el marco para tener cuidado.
Pero en SO, encontré this , y me hace pensar que angular es mucho mejor, mientras que en SO nuevamente, this , y this me hace pensar que podría ser la columna vertebral lo que estoy buscando.
Para empeorar las cosas, las pruebas muestran resultados totalmente diferentes. aquí
http://jsfiddle.net/HusVw/1/ Backbone clear winner
http://jsfiddle.net/ericf/NrpcQ/ Backbone winner again
http://jsperf.com/angular-vs-knockout-vs-extjs-vs-backbone/2 angular winner for less data for more its knockout
http://jsperf.com/knockout-js-vs-direct-dom-manipulation/3 Backbone again
http://jsperf.com/angular-vs-knockout-vs-ember/33 no way its ember as the site mentioned
Entonces, básicamente, todo esto me confunde por completo, no puedo decidir qué nombre debería aprender en la web y qué debería implementar en el sitio. Como en las pruebas, Backbone
se destaca claramente, pero he oído mucho sobre knockout
, pero los enlaces de SO que mencioné dicen sobre angular
. Sé que podría depender de la aplicación que estoy desarrollando actualmente, pero quiero una visión más amplia, ¿qué sería útil no solo para este proyecto, sino también para un plazo más largo? En cuyo caso, ¿preferiría qué marco? ¿O debería simplemente aprenderlos todos? (Jk, realmente no puedo hacer eso en un tiempo plausible).
Para hacer las cosas más f ****, escuché sobre dart , y wiki dice ...
El objetivo de Dart es "reemplazar en última instancia a JavaScript como lingua franca de desarrollo web en la plataforma web abierta".
Entonces, si js va a ser reemplazado, ¿por qué el hack incluso estoy considerando aprender estas bibliotecas js / framework (s)?
Entonces, básicamente, todo está en mal estado y estoy totalmente confundido. ¿Alguien puede ayudarme a decidir?
Bueno, antes que nada, realmente no hay una respuesta "buena" a esta pregunta. Todas las bibliotecas MVC son buenas si le preguntas a sus creadores: p Dicho esto, te recomiendo que comiences a leer los ejemplos en TODO-MVC para que puedas ver cuánto código se requiere para una aplicación web TO-DO simple, y qué tan complejo es. Entonces decide con qué estás dispuesto a ir. Mi recomendación personal es Backbone. Además, hay algunas bibliotecas complementarias que harán cosas (casi) mágicas, como el Backbone Anidado, por ejemplo.
¡Buena suerte!
Probablemente no haya una respuesta objetiva, pero aquí están mis 2 centavos:
La red troncal generalmente conduce a bases de código mucho más grandes que son más difíciles de mantener. Similar a la anécdota en sus enlaces, he trabajado en un proyecto donde el código se redujo de 2500 líneas con Backbone a 600 líneas con Angular. Knockout probablemente habría arrojado resultados igualmente pequeños (= buenos). Mis colegas se han alejado de Backbone para Knockout y fueron mucho más felices después.
La ventaja de Backbone es que es realmente liviano y te brinda más opciones para estructurar las cosas. Eso también significa que puede hacer más ajuste de rendimiento, por lo que puede ser más rápido. Esos mismos aspectos son también su desventaja: debe estructurar las cosas usted mismo, lo que significa: más código, más complicado y potencialmente más errores.
En cuanto a las pruebas que mencionas: son poco objetivas, ya que enfatizan un caso de uso muy particular. Además, fueron publicados por el propio autor de Backbone, por lo que obviamente muestran una buena luz de Backbone. Para interfaces de usuario normales, el rendimiento no debería ser un problema sin importar cuál de los 3 (Backbone, Angular, Knockout) que elija. Una advertencia para Angular: si desea visualizar dinámicamente más de 2000 elementos en su página, podría ser problemático (consulte la respuesta del propio creador de Angular aquí: ¿Cómo funciona el enlace de datos en AngularJS? ).
Acerca de Dart: su objetivo es ser un lenguaje, no solo un framework MV * dentro de un idioma. Esa es una bestia completamente diferente y si simplemente necesitas un framework MV *, Dart sería excesivo. Además, Dart aún es muy joven y no cuenta con soporte nativo en la mayoría de los navegadores.