Magento 2がAngularまたはReactの代わりにKnockoutを使用する理由


14

私の質問はタイトルに書かれているように簡単です。その理由は、Magentoがアンギュラーやリアクションのような他のフレームワークの代わりにノックアウトを選択するのでしょうか?

具体的な理由はありますか?

また、これはこの質問をするのに適したプラットフォームですか?

回答:


6

彼らがSassよりもLESSを選んだのはそれが同じ理由だと思います-ReactにはMagento 2が最初に起動したときに大きな安定したコミュニティがありませんでした、Angularがそうであったかどうかはわかりませんが、私の意見では、Magentoにとってはやり過ぎだと思われます。

Knockoutは軽量で、過剰ではなく、Magentoが当時必要としていた要件を満たしています。

RegentベースのプログレッシブWebアプリ(PWA)バー​​ジョンのMagentoがあり、今年のある時点でチェックアウトできるはずですが、私が見ることができる初期のコンセプト段階にあるため、リリース日はありません。詳細については、こちらをご覧ください


1
はい、すでにフォローしています。Magentoの会議でBenに会う機会があり、そこで彼はPWAについても語っていました。はい、それはMagentoが真剣に考えていることです。
ガガン

8

もし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
あなたは簡単なオンライン検索でさらに多くを見つけることができます。


実際に私がこれを尋ねたのは、インストール手順のインターフェイスがAngularを使用しているためです。それが、ここでそれを尋ねる主な理由です。インストール手順でAngularを使用している場合、requireの代わりにAngularを使用できます。ノックアウトがデータバインディングにJquery Ajaxを使用する唯一の理由は、彼らが選択した理由です。私の言いたいことを理解してください。質問をする必要があるだけでなく、magentoがインストール用に別のjs fwを変更し、残りの領域に別のjs fwを変更する必要がある。
ガガン

インストーラーは独立した小さなアプリケーションです。たぶん、それは別のチームによって構築されました。
マリウス

7

公式の理由はわかりませんが、Knockoutは、より重いAngularまたはReactよりもはるかに軽量で、Magento2フロントエンドテンプレートとの統合に必要な最小限の負荷を備えているようです。

また、RequireJSとgulpが自動的にノックアウトとブレンドしてロード時間とファイルサイズを削減する簡単な方法が重要であると推測されますが、Magento2を計画する際にはフロントエンドの速度がかなり重要な考慮事項でした。


はい、速度が理由である場合があります。Infact Magentoはその「スピード」で有名です:)、ノックアウトがAngularを置き換えることができるほど速い場合は理にかなっています。しかし、Angularの方が速いと確信していますが、100%自信はありません。
ガガン

3

より良い質問は、なぜm2がフロントエンドと非常に強く結びついているのでしょうか?

M2がリリースされたとき、多くのJSフレームワークがすでに存在していました。

M2は、人々が以下の場合にはるかに人気があったでしょう。

  • プリプロセッサ、バンドラ、コンパイラ、less、sassなどの選択肢がありました。
  • angle1-5-n、react、vueなどのように使用するフレームワークを選択する自由がありました
  • CSSフレームワーク、ブートストラップ1-4、ファンデーション、グリッドなどを使用する自由がありました

基本的に多くのET ALS。しかし、いいえ、彼らはあなたに彼らの過剰に設計されたフロントエンド、XML駆動の怪物を使用することを強制します。

良いことは、REST APIを持っていることです。そのため、ヘッドレスでプログレッシブWebアプリを構築できます。


私は@ベン・クルックが指しているのだと思うので、私は、私がNLでPWAに焦点を当てて反応さだと思う満たすMagentoの最新のを発見した
GAGAN

1
@Gagandeepには、このgithub.com/DivanteLtd/vue-storefrontもあります。個人的には、過度に設計されていないフレームワークが好きであり、物事を行う方法により多くの自由を与えます。ほとんどの場合、サービス、モデル、ヘルパーを提供するだけです。TLDR; 不可知論のフレームワーク。私のスタックの選択は、Angular5(n)、ブートストラップ4、sass、typescript、webpackです。
ミゲルフェリペギレンカロ

0

心配しないでください。Anton KrilがMageConf2017で発表したように、2.4バージョンのMagento2フロントエンドにはReactが含まれます。そして、もちろんReduxとGraphQLも。しかし... Knockout.jsは残ります。


これは間違っています。Magento 2.4はReactを使用せず、Magento 2は引き続き同じスタック(Knockoutを含む)を使用します。あなたが言及しているのはPWA Studioで、Magentoは日付を発表していません。
ベン・クルック

それでも、特定のスタックを使用するように強制されます。なんて残念だ。
ミゲルフェリペギレンカロ

@MiguelFelipeGuillenCaloいいえ、そうではありません。PWA Studioのアイデアは、新しいGraphQL APIにフックすることです。これにより、使用するフロントエンドテクノロジーを使用し、必要なものをサーバーから簡単に取得できます。現在のREST APIはこれを難しくしています(異なるwebapi領域を使用しているため)、新しいAPIはそれに適しています。PWA Studioは、それを必要とする人々に基盤を提供する方法にすぎません。
Jisse Reitsma

@JisseReitsma community.magento.com/t5/Magento-DevBlog / ... これは、使用するスタックを明確に示しています。それらが機能を拡張するとき、それはおそらくそのスタックに残るでしょう。したがって、特定のスタックを使用する必要があります。
ミゲルフェリペギレンカロ

@MiguelFelipeGuillenCalo私は知っています。ただし、自分で作成できる唯一のスタックがMagentoが構築しているスタックであることを意味するものではありません。はい、仕事をゼロにしたい場合、Magentoがあなたのために構築したものだけを使用したい場合、それらのスタックが使用するものです。ただし、あなたのポイントは、「特定のスタックを使用するように強制する」ということであり、それは真実ではありません。独自のスタックを構築しますが、強制的に使用することはありません。代わりに、GraphQL APIの上にスタックを構築し、そのAPIの上に独自のスタックを構築できます。はるかに柔軟性が高いため、必要な柔軟性が得られます。
Jisse Reitsma
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.