Moje pytanie jest tak proste, jak mówi tytuł. Dlaczego Magento miałby wybierać nokaut zamiast innych ram, takich jak kątowe lub reagować?
Czy jest jakiś konkretny powód?
Czy to także odpowiednia platforma do zadawania tego pytania?
Moje pytanie jest tak proste, jak mówi tytuł. Dlaczego Magento miałby wybierać nokaut zamiast innych ram, takich jak kątowe lub reagować?
Czy jest jakiś konkretny powód?
Czy to także odpowiednia platforma do zadawania tego pytania?
Odpowiedzi:
Wydaje mi się, że to ten sam powód, dla którego wybrali LESS zamiast Sass - React nie miał za sobą dużej stabilnej społeczności, kiedy Magento 2 był uruchamiany po raz pierwszy, nie jestem pewien, czy Angular, ale tak czy inaczej słyszałem, że Angular jest dość złożony i moim zdaniem wydawałoby się przesadne dla Magento.
Knockout jest lekki, nie przesadza i spełnia wymagania Magento w tym czasie.
Istnieje wersja Magento oparta na React progresywnej aplikacji internetowej (PWA), którą powinniśmy być w stanie sprawdzić w pewnym momencie tego roku, ale nie ma daty premiery, ponieważ z tego, co widzę, jest na wczesnym etapie koncepcji. Więcej informacji na ten temat można znaleźć tutaj .
Jeśli Magento 2 został zbudowany przy użyciu reakcji, twoje pytanie brzmiałoby: „Dlaczego nie używa Angulara ani KnockoutJs?”.
Jeśli został zbudowany przy użyciu Angulara ... wiesz, dokąd to zmierza.
Nie jestem autorytetem w tym zakresie, ale spekuluję, że była to broń z wyboru, ponieważ zespół był bardziej komfortowy z KOjs i odpowiadał ich potrzebom na podstawie ich mapy drogowej.
Odbyła się podobna debata na temat tego, dlaczego wybrać mniej niż sass (czytaj więcej na ten temat tutaj: https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/ )
Słyszałem także dyskusje o tym, dlaczego ZF, a nie Symfony. To samo ... to kwestia wyboru odpowiednich narzędzi odpowiednich do pracy, narzędzi, z którymi czujesz się komfortowo.
W każdym razie ... nie jesteś zbytnio ograniczony tym wyborem. Możesz wybrać stos technologii, specjalnie dla frontendu, który najbardziej Ci odpowiada.
Może być konieczne włożenie dodatkowego wysiłku, ale zrobisz to tylko raz i będziesz mógł ponownie wykorzystać wyniki w przyszłych projektach.
Na Magento są już projekty, na przykład z reakcją.
Oto niesamowity film z Riccardo Tempesta: https://www.youtube.com/watch?v=ElZ5UtTXpzQ
Również tutaj możesz znaleźć proxy między reagować a magento: https://github.com/McFizh/magento2-react
You można znaleźć jeszcze więcej za pomocą prostego wyszukiwania online.
Nie znam oficjalnego powodu, ale po jego użyciu Knockout wydaje się o wiele lżejszy, wczytuje minimum niezbędnego i odpowiedniego do integracji z szablonami frontonu Magento2 niż cięższy Angular lub React.
Prawdopodobnie ważny był także łatwy sposób, w jaki RequireJS i gulp automatycznie łączą się z nokautem, aby skrócić czas ładowania i rozmiary plików, ale pewna szybkość była bardzo ważna podczas planowania Magento2.
Myślę, że lepszym pytaniem jest, dlaczego m2 jest tak mocno sprzężone z frontendem?
Wiele frameworków JS istniało już w momencie wydania M2.
M2 byłby o wiele bardziej popularny, gdyby ludzie:
Zasadniczo dużo ET ALS. Ale nie, zmuszają cię do korzystania z ich przeprojektowanej nakładki, potworności opartej na XML.
Dobrą rzeczą jest to, że mają interfejs API REST, dzięki czemu można bezgłowo budować progresywną aplikację internetową.
Proszę, nie martw się o to. Jak zapowiedział Anton Kril na MageConf2017 - od wersji 2.4 frontend Magento2 będzie miał React. A także, oczywiście, Redux i GraphQL. Ale ... Knockout.js pozostanie.
webapi
obszar), nowy interfejs API jest do tego odpowiedni. PWA Studio to tylko sposób na zapewnienie bazy tym, którzy jej potrzebują.