回答:
彼らがSassよりもLESSを選んだのはそれが同じ理由だと思います-ReactにはMagento 2が最初に起動したときに大きな安定したコミュニティがありませんでした、Angularがそうであったかどうかはわかりませんが、私の意見では、Magentoにとってはやり過ぎだと思われます。
Knockoutは軽量で、過剰ではなく、Magentoが当時必要としていた要件を満たしています。
RegentベースのプログレッシブWebアプリ(PWA)バージョンのMagentoがあり、今年のある時点でチェックアウトできるはずですが、私が見ることができる初期のコンセプト段階にあるため、リリース日はありません。詳細については、こちらをご覧ください。
もしMagento 2がreactを使用してビルドされた場合、あなたの質問は「なぜAngularまたはKnockoutJsを使用しないのですか?」です。
それがAngularを使用して構築された場合....これがどこへ行くのか知っています。
私はこれについての権威ではありませんが、チームがKOjsに慣れており、ロードマップに基づいて彼らのニーズに合っていたため、それが選択の武器だったと推測します。
sassよりも少なく選択する理由と同様の議論がありました(https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/で詳細をご覧ください))
また、なぜSymfonyではなくZFなのかについての議論も聞きました。同じこと...仕事に適した適切なツール、つまり使いやすいツールを選択するだけです。
とにかく...あなたはこの選択についてあまり制限されていません。フロントエンド用に最適な技術スタックを選択できます。
余分な努力が必要になる場合がありますが、それは一度だけ行い、結果を将来のプロジェクトで再利用できます。
たとえば、reactを使用したmagentoには既にプロジェクトがあります。
:ここではリッカルド・テンペスタから素晴らしい見よあるhttps://www.youtube.com/watch?v=ElZ5UtTXpzQ
また、あなたがここに反応し、Magentoの間のプロキシを見つけることができますが:https://github.com/McFizh/magento2-react
あなたは簡単なオンライン検索でさらに多くを見つけることができます。
公式の理由はわかりませんが、Knockoutは、より重いAngularまたはReactよりもはるかに軽量で、Magento2フロントエンドテンプレートとの統合に必要な最小限の負荷を備えているようです。
また、RequireJSとgulpが自動的にノックアウトとブレンドしてロード時間とファイルサイズを削減する簡単な方法が重要であると推測されますが、Magento2を計画する際にはフロントエンドの速度がかなり重要な考慮事項でした。
より良い質問は、なぜm2がフロントエンドと非常に強く結びついているのでしょうか?
M2がリリースされたとき、多くのJSフレームワークがすでに存在していました。
M2は、人々が以下の場合にはるかに人気があったでしょう。
基本的に多くのET ALS。しかし、いいえ、彼らはあなたに彼らの過剰に設計されたフロントエンド、XML駆動の怪物を使用することを強制します。
良いことは、REST APIを持っていることです。そのため、ヘッドレスでプログレッシブWebアプリを構築できます。
心配しないでください。Anton KrilがMageConf2017で発表したように、2.4バージョンのMagento2フロントエンドにはReactが含まれます。そして、もちろんReduxとGraphQLも。しかし... Knockout.jsは残ります。
webapi
領域を使用しているため)、新しいAPIはそれに適しています。PWA Studioは、それを必要とする人々に基盤を提供する方法にすぎません。