Câu trả lời:
Tôi tin rằng đó cũng chính là lý do họ chọn LESS over Sass - React không có một cộng đồng ổn định lớn đằng sau nó khi Magento 2 mới bắt đầu, tôi không chắc liệu Angular có làm hay không nhưng dù sao tôi cũng nghe thấy Angular khá phức tạp và Theo tôi thì có vẻ quá mức cần thiết cho Magento.
Knockout rất nhẹ, không quá mức cần thiết và đáp ứng các yêu cầu mà Magento có vào thời điểm đó.
Có một phiên bản ứng dụng web tiến bộ dựa trên React (PWA) của Magento mà chúng ta sẽ có thể kiểm tra vào một thời điểm nào đó trong năm nay nhưng không có ngày phát hành vì nó ở giai đoạn đầu tiên từ những gì tôi có thể thấy. Để biết thông tin về điều đó xem ở đây .
Nếu Magento 2 được xây dựng bằng phản ứng, câu hỏi của bạn sẽ là "Tại sao nó không sử dụng Angular hay KnockoutJs?".
Nếu nó được xây dựng bằng Angular .... bạn biết nơi này sẽ đi.
Tôi không phải là người có thẩm quyền về vấn đề này, nhưng tôi suy đoán đó là vũ khí được lựa chọn vì nhóm thoải mái hơn với KOjs và nó phù hợp với nhu cầu của họ dựa trên lộ trình của họ.
Có một cuộc tranh luận tương tự về lý do tại sao chọn ít hơn sass (đọc thêm về nó ở đây: https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/ )
Tôi cũng đã nghe các cuộc thảo luận về lý do tại sao ZF chứ không phải Symfony. Điều tương tự ... đó là vấn đề chọn đúng công cụ phù hợp với công việc, công cụ mà bạn cảm thấy thoải mái.
Dù sao ... bạn không bị giới hạn quá nhiều về sự lựa chọn này. Bạn có thể chọn ngăn xếp công nghệ, đặc biệt cho frontend, phù hợp với bạn nhất.
Bạn có thể cần nỗ lực thêm, nhưng bạn sẽ chỉ làm một lần và có thể sử dụng lại kết quả trong các dự án trong tương lai.
Đã có những dự án trên magento với phản ứng chẳng hạn.
Đây là một đoạn video tuyệt vời từ Riccardo Tempesta: https://www.youtube.com/watch?v=ElZ5UtTXpzQ
Ngoài ra, bạn có thể tìm thấy ở đây một proxy giữa Reac và magento: https://github.com/McFizh/magento2-react
You có thể tìm thấy nhiều hơn với một tìm kiếm trực tuyến đơn giản.
Không biết lý do chính thức, nhưng đã sử dụng nó, Knockout có vẻ nhẹ hơn rất nhiều, tải tối thiểu cần thiết và phù hợp để tích hợp với các mẫu frontend Magento2 so với Angular hoặc React nặng hơn.
Ngoài ra, cách dễ dàng RequireJS và gulp tự động kết hợp với loại trực tiếp để giảm thời gian tải và kích thước tệp có thể rất quan trọng, đoán, nhưng tốc độ mặt trước khá chắc chắn là một cân nhắc chính khi lập kế hoạch Magento2.
Tôi nghĩ một câu hỏi tốt hơn là, tại sao m2 lại được kết hợp chặt chẽ với frontend?
Rất nhiều khung công tác JS đã xuất hiện khi M2 phát hành.
M2 sẽ trở nên phổ biến hơn rất nhiều nếu mọi người:
Về cơ bản rất nhiều ET ALS. Nhưng không, họ buộc bạn phải sử dụng lối vào quái gở, xml điều khiển của họ.
Điều tốt là, họ có API REST, vì vậy bạn có thể không đầu và xây dựng một ứng dụng web tiến bộ.
Xin đừng lo lắng về điều đó. Như Anton Kril đã công bố tại phiên bản MageConf2017 -since 2.4 phiên bản Magento2 sẽ có React. Ngoài ra, Redux tất nhiên, và GraphQL. Nhưng ... Knockout.js sẽ vẫn còn.
webapi
khu vực khác ), API mới phù hợp với điều đó. PWA Studio chỉ là cách họ cung cấp cơ sở cho những người cần nó.