Respuestas:
Creo que es la misma razón por la que eligieron MENOS que Sass: React no tenía una gran comunidad estable detrás cuando Magento 2 se inició por primera vez, no estoy seguro de si Angular lo hizo, pero de cualquier manera he oído que Angular es bastante complejo y Parecería excesivo para Magento en mi opinión.
Knockout es liviano, no es excesivo y cumple con los requisitos que Magento tenía en ese momento.
Hay una versión de Magento de la aplicación web progresiva basada en React (PWA) que deberíamos poder revisar en algún momento este año, pero no hay una fecha de lanzamiento ya que está en una etapa de concepto inicial por lo que puedo ver. Para obtener información sobre eso, consulte aquí .
Si Magento 2 fue construido usando reaccionar, su pregunta sería "¿Por qué no usa Angular o KnockoutJs?".
Si fue construido usando Angular ... ya sabes a dónde va esto.
No soy una autoridad en esto, pero especulo que era el arma de elección porque el equipo se sentía más cómodo con KOjs y se adaptaba a sus necesidades en función de su hoja de ruta.
Hubo un debate similar al por qué elegir menos sobre sass (lea más sobre esto aquí: https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/ )
También escuché discusiones sobre por qué ZF y no Symfony. Lo mismo ... se trata de elegir las herramientas adecuadas para el trabajo, las herramientas con las que se siente cómodo.
De todos modos ... no estás demasiado limitado sobre esta elección. Puede elegir la pila tecnológica, especialmente para frontend, que más le convenga.
Es posible que deba hacer un esfuerzo adicional, pero lo hará solo una vez y podrá reutilizar los resultados en proyectos futuros.
Ya hay proyectos en magento con reacción, por ejemplo.
Aquí hay un video impresionante de Riccardo Tempesta: https://www.youtube.com/watch?v=ElZ5UtTXpzQ
También puede encontrar aquí un proxy entre react y magento: https://github.com/McFizh/magento2-react
You puede encontrar aún más con una simple búsqueda en línea.
No sé la razón oficial, pero habiéndolo usado, Knockout parece mucho más liviano, carga lo mínimo necesario y adecuado para integrarse con las plantillas frontend de Magento2 que Angular o React.
Además, la forma fácil que RequireJS y gulp se combinan automáticamente con la eliminación de golpes para reducir el tiempo de carga y los tamaños de archivo probablemente fue importante, supongo, pero una velocidad bastante segura en el extremo frontal fue una consideración importante al planificar Magento2.
Creo que una mejor pregunta es, ¿por qué m2 está tan fuertemente acoplado con frontend?
Muchos marcos JS ya existían cuando se lanzó M2.
M2 habría sido mucho más popular si las personas:
Básicamente muchos ET ALS. Pero no, te obligan a usar su frontend sobre ingeniería, monstruosidad impulsada por xml.
Lo bueno es que tienen una API REST, por lo que puede quedarse sin cabeza y crear una aplicación web progresiva.
Por favor, no te preocupes por eso. Como Anton Kril anunció en el MageConf2017 -desde la versión 2.4, la interfaz de Magento2 tendrá React. Y también, Redux, por supuesto, y GraphQL. Pero ... Knockout.js permanecerá.
webapi
área diferente ), la nueva API es adecuada para eso. PWA Studio es solo su forma de proporcionar una base a quienes lo necesitan.