Чому Magento 2 використовує Knockout замість Angular або React


15

Моє запитання так само просто, як сказано в заголовку. Чому б Magento обрав нокаут замість інших рамок, таких як кутовий або реагував?

Чи є конкретна причина?

Також це правильна платформа, щоб задати це питання?


@ Ben-Crook З нетерпінням чекаємо ваших внесків, отриманих за останніми випусками та оновленнями Magento 2 до дати. Чи є щось конкретне, розпочате командою?
meDeepakJain

Відповіді:


6

Я вважаю, що це та сама причина, яку вони вибрали менше за Sass - React не мав великої стабільної спільноти, коли Magento 2 був вперше запущений, я не впевнений, чи Angular це зробив, але так чи інакше я почув Angular досить складний і могло б здатися непосильним для Magento.

Нокаут легкий, не є надмірним і відповідає вимогам, які Магенто на той час мав.

Існує версія Magento, заснована на React, прогресивна веб-програма (PWA), яку ми повинні мати можливість оформити в якийсь момент цього року, але немає дати випуску, оскільки вона знаходиться на початковій стадії концепції з того, що я бачу. Інформацію про це дивіться тут .


1
Так, вже слідуючи за ними. У мене був шанс познайомитись з Беном у зустрічі Magento, де він також говорив про PWA. Так, так, Магенто серйозно ставиться до цього.
Гаган

8

Якщо Magento 2 будували за допомогою реагування, то запитання було б "Чому він не використовує Angular або KnockoutJs?".
Якщо він був побудований за допомогою кутового .... ви знаєте, куди це йде.

Я не є владою з цього приводу, але гадаю, що це зброя вибору, тому що команді було зручніше з KOjs, і це відповідало їх потребам, виходячи з їх дорожньої карти.

Була подібна дискусія, чому вибирати менше за sass (детальніше про це читайте тут: https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/ )

Я також чув дискусії про те, чому ZF, а не Symfony. Те саме ... справа в тому, щоб вибрати правильний інструмент, відповідний для роботи, інструменти, якими ви зручні.

У будь-якому випадку ... ви не занадто обмежені цим вибором. Ви можете вибрати стек технологій, спеціально для інтерфейсу, який вам найбільше підходить.
Можливо, вам доведеться докласти додаткових зусиль, але ви зробите це лише один раз і зможете використати результати в майбутніх проектах.
На Магенто вже є проекти, наприклад, реагуючи.
Ось дивовижне відео від Ріккардо Темпеста: https://www.youtube.com/watch?v=ElZ5UtTXpzQ
Також ви можете знайти тут проксі між реакцією та магенто: https://github.com/McFizh/magento2-react
You Ви можете знайти ще більше за допомогою простого пошуку в Інтернеті.


Насправді, чому я запитав це, це тому, що інтерфейс кроку установки використовує Angular, тому це було ключовою причиною для мене просити його тут. Якщо вони застосовують Angular на етапі встановлення, вони могли б використовувати його замість необхідності. Чи є це єдиною причиною того, що нокаут використовує Jquery Ajax для прив'язки даних - це те, чому вони вибрали. Сподіваюся, ви зрозуміли, що я маю на увазі. Це не просто необхідність задавати питання, але і необхідність магенто змінювати різні js fw для встановлення та різні для решти області.
Гаган

Інсталятор - окремий невеликий додаток. Можливо, його побудувала інша команда.
Маріус

7

Не знаю офіційної причини, але, використовуючи її, Knockout здається набагато легшою, завантажує мінімально необхідний і підходить для інтеграції з шаблонами фронтенда Magento2, ніж більш важкі кутові або React.

Мабуть, важливий важливий також простий спосіб RequireJS та gulp автоматично поєднуються з нокаутом, щоб зменшити час завантаження та розмір файлів, але досить певна швидкість переднього кінця була важливою увагою при плануванні Magento2.


Так, швидкість може бути причиною. Infact Magento славиться своєю "ШВИДКОЮ" :) і якщо нокаут такий швидкий, що він може замінити Angular, це має сенс. Але я цілком впевнений, що Кутовий швидше, однак я не впевнений на 100%.
Гаган

3

Я вважаю, що краще питання: чому м2 так сильно поєднаний з передньою стороною?

Багато JS фреймворків було вже навколо, коли M2 вийшов.

M2 був би набагато популярнішим, якби люди:

  • мали вибір препроцесорів, розмножувачів, компіляторів, менше, sass та ін
  • мав свободу вибирати, який фреймворк використовувати як angular1-5-n, реагувати, vue тощо
  • мав свободу використовувати рамки css, bootstrap 1-4, Foundation, grid та ін

В основному багато ET ALS. Але ні, вони змушують вас використовувати їх над інженерним фронтедом, керованим чудовиськом xml.

Хороша річ у тому, що у них є REST API, тож ви можете без голову і створити прогресивний веб-додаток.


Я знайшов останню зустріч магенто, я думаю, що в НЛ зосереджений на PWA та React, тому я думаю, що саме там вказує @ ben-crook
Гаган

1
@Gagandeep також є цей github.com/DivanteLtd/vue-storefront . Мені особисто подобаються рамки, які не надто спроектовані, і дають більше свободи щодо того, як робити справи. В основному просто надають послуги, моделі та помічники. TLDR; агностичні рамки. Моїм особистим вибором стеку було б: Angular5 (n), завантажувальна програма 4 разом із sass, typecript та webpack.
Мігель Феліпе Гіллен Кало

0

Будь ласка, не хвилюйтеся з цього приводу. Як оголосив Антон Кріль на MageConf2017 - з 2.4 версії Magento2 фронтенд матиме React. А також, Redux звичайно, і GraphQL. Але ... Knockout.js залишиться.


Це неправильно. Magento 2.4 не використовуватиме React, Magento 2 все одно буде використовувати той самий стек (включаючи нокаут). Ви маєте на увазі студію PWA , для якої Magento не оголосив дату.
Бен Крук

Вони все ще змушують вас використовувати певний стек. Який облом.
Мігель Феліпе Гіллен Кало

@MiguelFelipeGuillenCalo Ні, не дуже. Ідея PWA Studio полягає в тому, щоб вона приєдналася до нового API API GraphQL, який дозволить вам використовувати будь-яку технологію інтерфейсу, яку ви хотіли б використовувати, і просто отримати з сервера те, що вам потрібно. Поточний API REST робить це важким (оскільки він використовує іншу webapiобласть), новий API підходить для цього. PWA Studio - це лише спосіб створення бази для тих, хто цього потребує.
Jisse Reitsma

@JisseReitsma community.magento.com/t5/Magento-DevBlog/… це чітко вказує, який стек він буде використовувати. Коли вони розширять функції, вона, ймовірно, залишиться в цій стеці. Отже, вони змушують вас використовувати певний стек.
Мігель Феліпе Гіллен Кало

@MiguelFelipeGuillenCalo Я знаю. Але це НЕ означає, що єдиний стек, який ви можете створити самостійно, - це той, який створює Magento. Так, якщо ви хочете мати нульову роботу і якщо ви хочете використовувати лише те, що Magento будує для вас, то їх стек - це той, який слід використовувати. Однак ваш пункт полягає в тому, що "вони все ще змушують вас використовувати певний стек", і це неправда. Вони будують свій власний стек, але не змушують вас ним користуватися. Натомість вони будують цей стек поверх API API GraphQL і дозволяють будувати власний стек поверх цього API. Набагато більше гнучкості, тому у вас є гнучкість, яку ви хочете.
Jisse Reitsma
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.