A partir de 2014, ¿cuáles son los marcos JavaScript front-end más importantes que un desarrollador web front-end competente debe tener en cuenta?

Hay todo tipo de marcos en el ecosistema front-end, así que permítanme desglosarlo por tipo.

MVC Frameworks
Debe ser competente con al menos uno de estos, y probablemente estar familiarizado con las decisiones de diseño que los otros han tomado.

  • AngularJS: probablemente el marco de “servicio completo” más popular a partir de marzo de 2014. Angular se siente como “los rieles de la web”, ya que hace mucho y puede parecer bastante mágico en algunos lugares. Angular también parece tener la curva de aprendizaje más alta de las tres.
  • Ember.js: no he construido nada en Ember, así que tómalo con un grano de sal, pero parece presentarse como una alternativa menos mágica a Angular. Por ejemplo, mientras Angular usa la verificación sucia para saber cuándo actualizar el DOM, Ember te hace usar getters y setters explícitos; algunas personas aprecian esto ya que está muy claro lo que sucede detrás de escena en Ember, no tanto en Angular. Ember parece ser más obstinado acerca de tener “una forma de hacer las cosas” cuando se trata de recursos y modelos, mucho menos que Angular en ese sentido.
  • BackboneJS, pionero en el espacio de MVC de front-end, pero desde entonces ha sido desafiado por los dos anteriores en interés, sigue siendo muy relevante, pero es menos obstinado y requiere más reflexión inicial sobre la arquitectura.

Obligatorio

  • jQuery, como respondió Yoshi Rubin.

Herramientas de construcción

  • GruntJS parece ser el más popular en estos días.
  • Gulp es genial y está ganando popularidad, podría valer la pena echarle un vistazo.

Gerentes de paquete

  • Bower es probablemente el más utilizado.
  • El componente se integra a la perfección con GitHub, pero parece que tiene menos uso general.

Pruebas

  • Mocha y Jasmine son dos excelentes marcos de prueba.
  • Parece que las comunidades preferirán una herramienta y seguirán con ella. Por ejemplo, los proyectos AngularJS y React (biblioteca JavaScript) usan Jasmine, por lo que si está creando una herramienta o aplicación en ese ecosistema, podría ser más fácil seguir con su herramienta preferida.

Descargo de responsabilidad: soy autor de Atoms.js

Hablando de la curva de aprendizaje y el tiempo para comenzar, Atoms.js supera cada marco ya que sigue estrictamente los conceptos de modelado de objetos componentes introducidos en Adobe Flex, Silverlight, ActiveX, Java Swings, WPF, etc.

Echa un vistazo a https://github.com/neurospeech/a

Twitter: Atoms.js (@atomsjs) | Gorjeo
Fuente de GitHub: neurospeech / átomos.js
Documentación: Componentes web JavaScript de grado empresarial inspirados en Flex y Silverlight

Reaccionar | Una biblioteca de JavaScript para construir interfaces de usuario
Es declarativo y elimina la mayoría de las dependencias y el código de espagueti en la interfaz de usuario front-end y las interacciones del usuario. Lanzado hace aproximadamente un año, le permite describir cómo dibujar componentes (hechos de elementos HTML) y componer componentes simplemente trabajando con un modelo de datos. Por ejemplo, puede asignar sobre una matriz de datos y devolver una matriz de componentes React, y el marco actualizará automáticamente la vista cuando cambie los datos.

Combine con Reaction para obtener aplicaciones pushstate / de una sola página
(Descargo de responsabilidad: hice Reaction. Trabajo en progreso, pero el navegador pushstate funciona)
feifanzhou / reacción

JQuery