Réponses:
Je pense que c'est la même raison pour laquelle ils ont choisi MOINS plutôt que Sass - React n'avait pas de grande communauté stable derrière Magento 2, je ne sais pas si Angular l'a fait, mais de toute façon j'ai entendu Angular est assez complexe et semblerait exagéré pour Magento à mon avis.
Knockout est léger, n'est pas exagéré et répond aux exigences de Magento à l'époque.
Il existe une version de l'application Web progressive (PWA) basée sur React de Magento que nous devrions être en mesure de vérifier à un moment donné cette année, mais il n'y a pas de date de sortie car elle en est à un stade conceptuel précoce de ce que je peux voir. Pour plus d'informations à ce sujet, voir ici .
Si Magento 2 a été construit en utilisant React, votre question serait "Pourquoi n'utilise-t-il pas Angular ou KnockoutJs?".
Si elle a été construite en utilisant Angular .... vous savez où cela va.
Je ne suis pas une autorité en la matière, mais je pense que c'était l'arme de choix car l'équipe était plus à l'aise avec les KOjs et cela convenait à leurs besoins en fonction de leur feuille de route.
Il y a eu un débat similaire pour savoir pourquoi choisir moins que sass (en savoir plus ici: https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/ )
J'ai également entendu des discussions sur la raison pour laquelle ZF et non Symfony. Même chose ... il s'agit de choisir les bons outils adaptés à la tâche, les outils avec lesquels vous êtes à l'aise.
Quoi qu'il en soit ... vous n'êtes pas trop limité sur ce choix. Vous pouvez choisir la pile technologique, spécialement pour l'interface, qui vous convient le mieux.
Vous devrez peut-être faire un effort supplémentaire, mais vous ne le ferez qu'une seule fois et pourrez réutiliser les résultats dans de futurs projets.
Il existe déjà des projets sur magento avec react par exemple.
Voici une vidéo impressionnante de Riccardo Tempesta: https://www.youtube.com/watch?v=ElZ5UtTXpzQ
Vous pouvez également trouver ici un proxy entre react et magento: https://github.com/McFizh/magento2-react
You peut trouver encore plus avec une simple recherche en ligne.
Je ne connais pas la raison officielle, mais l'ayant utilisé, Knockout semble beaucoup plus léger, charge le minimum nécessaire et convient pour l'intégration avec les modèles frontaux de Magento2 que le plus lourd Angular ou React.
De plus, la manière simple dont RequireJS et gulp se mélangent automatiquement avec knockout pour réduire le temps de chargement et la taille des fichiers était probablement importante, je suppose, mais la vitesse frontale assez certaine était une considération majeure lors de la planification de Magento2.
Je pense qu'une meilleure question est, pourquoi le m2 est-il si fortement couplé avec le frontend?
De nombreux frameworks JS existaient déjà lors de la sortie de M2.
M2 aurait été beaucoup plus populaire si les gens:
Fondamentalement, beaucoup de ET ALS. Mais non, ils vous obligent à utiliser leur front-end trop conçu, monstruosité pilotée par xml.
La bonne chose est qu'ils ont une API REST, donc vous pouvez aller sans tête et créer une application web progressive.
S'il vous plaît, ne vous en faites pas. Comme Anton Kril l'a annoncé au MageConf2017 - depuis la version 2.4, le frontend Magento2 aura React. Et aussi, Redux bien sûr, et GraphQL. Mais ... Knockout.js restera.
webapi
zone différente ), la nouvelle API est adaptée à cela. PWA Studio est juste leur façon de fournir une base à ceux qui en ont besoin.