Mengapa Magento 2 menggunakan Knockout, bukan Angular atau React


14

Pertanyaan saya sesederhana seperti yang tertulis di judul. Mengapa Magento memilih sistem gugur daripada kerangka kerja lain seperti sudut atau bereaksi?

Apakah ada alasan khusus?

Apakah ini platform yang tepat untuk menanyakan pertanyaan ini?

Jawaban:


6

Saya percaya itu adalah alasan yang sama mereka memilih KURANG daripada Sass - Bereaksi tidak memiliki komunitas stabil yang besar di belakangnya ketika Magento 2 pertama kali dimulai, saya tidak yakin apakah Angular melakukannya tetapi bagaimanapun saya mendengar Angular cukup kompleks dan akan tampak berlebihan bagi Magento menurut pendapat saya.

Knockout ringan, tidak berlebihan dan memenuhi persyaratan yang dimiliki Magento pada saat itu.

Ada versi Magento aplikasi web progresif (PWA) berbasis versi yang kita harus dapat checkout di beberapa titik tahun ini tetapi tidak ada tanggal rilis karena masih dalam tahap konsep awal dari apa yang bisa saya lihat. Untuk info tentang itu lihat di sini .


1
Ya sudah mengikuti mereka. Saya memiliki kesempatan untuk bertemu Ben di pertemuan Magento di mana dia juga mengatakan tentang PWA. Jadi, Ya itu adalah sesuatu yang Magento serius tentang.
Gagan

8

Jika Magento 2 dibuat menggunakan reaksi, pertanyaan Anda adalah "Mengapa tidak menggunakan Angular atau KnockoutJs?".
Jika dibangun menggunakan Angular .... Anda tahu kemana ini akan pergi.

Saya bukan otoritas dalam hal ini, tetapi saya berspekulasi itu adalah senjata pilihan karena tim lebih nyaman dengan KOjs dan itu sesuai dengan kebutuhan mereka berdasarkan peta jalan mereka.

Ada debat serupa dengan mengapa memilih lebih sedikit daripada merendahkan (baca lebih lanjut di sini: https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/ )

Saya juga mendengar diskusi tentang mengapa ZF dan bukan Symfony. Hal yang sama ... itu masalah memilih alat yang tepat cocok untuk pekerjaan itu, alat yang Anda merasa nyaman.

Bagaimanapun ... Anda tidak terbatas terlalu banyak tentang pilihan ini. Anda dapat memilih tumpukan teknologi, khusus untuk frontend, yang paling cocok untuk Anda.
Anda mungkin perlu melakukan upaya ekstra, tetapi Anda akan melakukannya hanya sekali dan dapat menggunakan kembali hasil dalam proyek-proyek masa depan.
Sudah ada proyek di luar sana di Magento dengan bereaksi misalnya.
Berikut ini video yang luar biasa dari Riccardo Tempesta: https://www.youtube.com/watch?v=ElZ5UtTXpzQ
Anda juga dapat menemukan di sini proxy antara reaksi dan magento: https://github.com/McFizh/magento2-react
You dapat menemukan lebih banyak lagi dengan pencarian online sederhana.


Sebenarnya mengapa saya bertanya ini karena antarmuka langkah instalasi menggunakan Angular, jadi itulah alasan utama saya bertanya di sini. Jika mereka menggunakan Angular pada langkah instalasi mereka bisa menggunakannya di tempat yang membutuhkan. Apakah ini satu-satunya alasan bahwa sistem gugur menggunakan Jquery Ajax untuk pengikatan data adalah alasan mereka memilih. Saya harap Anda mengerti apa yang saya maksud. Bukan hanya kebutuhan untuk mengajukan pertanyaan, tetapi kebutuhan untuk magento untuk mengubah js fw berbeda untuk instalasi dan berbeda untuk seluruh area.
Gagan

Installer adalah aplikasi kecil yang terpisah. Mungkin itu dibangun oleh tim yang berbeda.
Marius

7

Tidak tahu alasan resmi, tetapi setelah menggunakannya, Knockout tampaknya jauh lebih ringan, memuat yang minimal diperlukan dan cocok untuk diintegrasikan dengan template frontend Magento2 daripada Angular atau React yang lebih berat.

Juga cara mudah RequireJS dan tegukan secara otomatis menyatu dengan sistem gugur untuk mengurangi waktu muat dan ukuran file mungkin penting, saya duga, tetapi kecepatan ujung depan yang cukup pasti adalah pertimbangan utama ketika merencanakan Magento2.


Ya, kecepatan bisa menjadi alasan. Infact Magento terkenal dengan "SPEED" nya :) dan jika sistem gugur secepat itu dapat menggantikan Angular, itu masuk akal. Tapi saya cukup yakin bahwa Angular lebih cepat, namun, saya tidak 100% percaya diri.
Gagan

3

Saya pikir pertanyaan yang lebih baik adalah, mengapa m2 begitu banyak digabungkan dengan frontend?

Banyak kerangka kerja JS sudah ada ketika M2 dirilis.

M2 Akan jauh lebih populer jika orang:

  • punya pilihan preprosesor, bundler, kompiler, less, sass, et al
  • memiliki kebebasan untuk memilih kerangka kerja mana yang akan digunakan seperti angular1-5-n, react, vue, et al
  • memiliki kebebasan untuk menggunakan framework css, bootstrap 1-4, foundation, grid, et al

Pada dasarnya banyak ET ALS. Tapi tidak, mereka memaksa Anda untuk menggunakan frontend engineered mereka, xml monstrosity driven.

Hal baiknya adalah, mereka memiliki API REST, sehingga Anda bisa tanpa kepala dan membangun aplikasi web progresif.


Saya telah menemukan meet magento terbaru yang saya pikir di NL difokuskan pada PWA dan React, jadi saya pikir di situlah @ ben-crook menunjuk
Gagan

1
@Gagandeep ada juga github.com/DivanteLtd/vue-storefront ini . Saya pribadi menyukai kerangka kerja yang tidak direkayasa secara berlebihan, dan memberi Anda lebih banyak kebebasan tentang cara melakukan sesuatu. Sebagian besar hanya menyediakan layanan, model, dan pembantu. TLDR; kerangka kerja agnostik. Pilihan stack pribadi saya adalah: Angular5 (n), bootstrap 4, bersama dengan sass, typescript, dan webpack.
Miguel Felipe Guillen Calo

0

Tolong, jangan khawatir tentang itu. Seperti yang diumumkan Anton Kril di MageConf2017 - sejak versi 2.4 Magento2 frontend akan React. Dan juga, Redux tentu saja, dan GraphQL. Tapi ... Knockout.js akan tetap ada.


Ini salah. Magento 2.4 tidak akan menggunakan Bereaksi, Magento 2 masih akan menggunakan tumpukan yang sama (termasuk Knockout). Yang Anda maksud adalah PWA Studio , yang belum diumumkan tanggal untuk Magento.
Ben Crook

Mereka masih memaksa Anda untuk menggunakan tumpukan tertentu. Nyebelin sekali.
Miguel Felipe Guillen Calo

@MiguelFelipeGuillenCalo Tidak, tidak juga. Ide dari PWA Studio adalah bahwa ia terhubung ke API GraphQL baru, yang akan memungkinkan Anda untuk menggunakan teknologi frontend apa pun yang ingin Anda gunakan dan hanya mengambil dari server apa yang Anda butuhkan. API REST saat ini membuat ini sulit (karena menggunakan webapiarea yang berbeda ), API baru cocok untuk itu. PWA Studio hanyalah cara mereka untuk menyediakan basis bagi mereka yang membutuhkannya.
Jisse Reitsma

@JisseReitsma community.magento.com/t5/Magento-DevBlog/... ini dengan jelas menyatakan tumpukan apa yang akan digunakan. Ketika mereka memperluas fitur, kemungkinan akan tetap di tumpukan itu. Karenanya, mereka memaksa Anda untuk menggunakan tumpukan tertentu.
Miguel Felipe Guillen Calo

@MiguelFelipeGuillenCalo saya tahu. Tapi itu TIDAK berarti bahwa satu-satunya tumpukan yang dapat Anda buat sendiri adalah yang dibangun Magento. Ya, jika Anda ingin memiliki nol kerja dan jika Anda hanya ingin menggunakan apa yang dibangun Magento untuk Anda, maka tumpukan mereka adalah yang akan digunakan. Namun, maksud Anda adalah bahwa "mereka masih memaksa Anda untuk menggunakan tumpukan tertentu" dan itu tidak benar. Mereka membangun tumpukan mereka sendiri, tetapi tidak memaksa Anda untuk menggunakannya. Sebaliknya, mereka membangun tumpukan itu di atas API GraphQL dan memungkinkan Anda untuk menumpuk tumpukan Anda sendiri di atas API itu. Jauh lebih fleksibel, sehingga Anda memiliki fleksibilitas yang Anda inginkan.
Jisse Reitsma
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.