Después de haber escrito varias aplicaciones de grado de producción a gran escala (más de 30k líneas de código fuente Javascript o Coffeescript) en Marionette, Ember y React & Friends, elegiría React. Este es el por qué:
- Es un patrón de vista (por falta de un término mejor), de los cuales la implementación HTML / DOM es la más conocida. También hay React Native, React Blessed (para interfaces de consola), React Canvas y probablemente más por venir (si entiendo correctamente, Netflix también lo usa para manejar interfaces SmartTV).
- React sí mismo tiene una pequeña API. Puede aprender a escribir componentes y agregar algunas rutas básicas dentro de medio día. Agregue un par de días más para patrones avanzados y sabrá todo lo que hay que saber sobre React.
- Tiene una historia coherente sobre el renderizado “Universal”, donde el primer render y todos los datos para ese renderizado son realizados por su servidor, después de lo cual el cliente recoge sin problemas y sin contenido feo debido a los cambios de diseño, etc.
- Es extremadamente composable (componentes que contienen componentes que contienen componentes, etc.).
- Tiene un ecosistema rico y de alta calidad, desde elementos de alto nivel como UI Frameworks, hasta API de bajo nivel para cosas como animación o gestión de estado. Además de las cosas que están específicamente construidas para React, para mí las barreras entre React y el resto del ecosistema Javascript se sienten muy fluidas. ¿Necesita validar formularios? Elija cualquiera de los increíbles validadores de esquema de JavaScript que están disponibles en NPM, como Validate.js, y escriba un componente simple de orden superior.
- Trae otros estilos de programación además de OOP (funcional / funcional reactivo) más profundo en su base de código. Hay bibliotecas de administración de estado (las M y C en MVC si se quiere) construidas completamente en Observables, con estructuras de datos inmutables en su núcleo.
¿Entonces por qué no? Sería falso decir que no hay inconvenientes para reaccionar, y si alguien no puede nombrar ninguno en su respuesta, eso debería ser una señal de alerta.
- No a todo el mundo le gusta JSX, el “lenguaje de plantilla” de React si lo desea, o el hecho de que su plantilla viva en el mismo archivo que el resto de su declaración de vista.
- Aunque la API de React es pequeña, no tiene un sistema integrado para cosas importantes, como administrar el estado, lidiar con la asincronía, etc., como lo hacen Backbone, Ember o Angular. Lo que esto significa es que debe conocer el ecosistema y ser proactivo en seguir las tendencias y actualizar las dependencias, etc. También significa que necesita un convenio de código de rango más amplio en una gran base de código.
- Las herramientas pueden ser desalentadoras para principiantes: reemplazo de módulo caliente, reacción, transformación, Babel … Es mucho para asimilar.
Entonces, ¿qué necesitaría saber para poder escribir aplicaciones de grado de producción en React? (las bibliotecas a continuación son las que uso, hay alternativas bien documentadas para cada una de ellas)
- ¿Cuánta compensación de equidad debería obtener por realizar trabajos de desarrollo en una startup?
- ¿Cómo se compara el currículo de One Month Rails con los bootcamps de programación más populares?
- ¿En qué medida los empleadores pagan completamente los planes de pensiones para los desarrolladores de software en los Países Bajos?
- Cómo comenzar a construir un desarrollo de servidor de anuncios en PHP
- Cómo agregar botones para compartir en redes sociales en el blog
- Enrutamiento
- Administración del Estado
- Asincronía
- Manejo de efectos secundarios
Consideraría pasar por SurviveJS o React For Beginners, ya que cubre la mayoría de estos temas en profundidad. También valdrá la pena profundizar en la programación funcional en Javascript y aprender ES2015 / ES2016, limpia mucho la sintaxis.
Tampoco no es importante: sí, React tiene una forma de renderizar en el servidor en varias plataformas. Sin embargo, es posible que no lo necesite (si no necesita SEO, por ejemplo), y si lo hace, prepárese para asumir el conocimiento del dominio que lo acompaña con respecto a escribir un buen código NodeJS y probar, implementar y monitorear la producción aplicaciones.