Magento 2가 Angular 또는 React 대신 Knockout을 사용하는 이유


15

내 질문은 제목에서 말하는 것처럼 간단합니다. 그렇기 때문에 Magento가 각도 또는 반응과 같은 다른 프레임 워크 대신 녹아웃을 선택하는 이유는 무엇입니까?

특별한 이유가 있습니까?

또한이 질문을 할 수있는 올바른 플랫폼입니까?


@ Ben-Crook 최신 Magento 2 릴리스 및 업데이트까지 현재까지의 입력을 기대합니다. 팀이 시작한 구체적인 내용이 있습니까?
meDeepakJain

답변:


6

그들이 그들이 Sass보다 LESS를 선택한 것과 같은 이유라고 생각합니다.-Magento 2가 처음 시작되었을 때 React는 그 뒤에 큰 안정적인 커뮤니티를 가지고 있지 않았습니다. 내 의견으로는 마 젠토에게 과잉으로 보일 것입니다.

녹아웃은 가벼우 며 과도하지 않으며 마 젠토가 당시 요구했던 요구 사항을 충족합니다.

Magento의 React 기반 프로그레시브 웹 앱 (PWA) 버전이 있는데, 올해 어느 시점에 체크 아웃 할 수 있지만 초기 개념 단계에 있기 때문에 출시 날짜는 없습니다. 이에 대한 정보는 여기 를 참조 하십시오 .


1
예, 이미 그들을 따르고 있습니다. 마 젠토 대회에서 벤을 만나서 PWA에 대해서도 이야기 할 기회를 얻었습니다. 네, 이것이 마 젠토가 진지한 것입니다.
가간

8

Magento 2가 반응을 사용하여 빌드 된 경우 질문은 "왜 Angular 또는 KnockoutJs를 사용하지 않습니까?"입니다.
Angular를 사용하여 빌드 된 경우 ... 어디로 가고 있는지 알 수 있습니다.

나는 이것에 대한 권위는 아니지만, 팀이 KOjs에 더 편하고 로드맵을 기반으로 그들의 요구에 적합했기 때문에 그것이 선택한 무기라고 추측합니다.

여기에 대한 자세한 읽기 (이하 이상 말대꾸를 선택하는 이유와 비슷한 논쟁이 있었다 : https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/ )

또한 Symfony가 아닌 ZF에 대한 토론도 들었습니다. 똑같은 것은 작업에 적합한 도구, 편안한 도구를 선택하는 것입니다.

어쨌든 ... 당신은이 선택에 대해 너무 많이 제한되지 않습니다. 특히 프론트 엔드 용으로 가장 적합한 기술 스택을 선택할 수 있습니다.
추가 노력을 기울여야 할 수도 있지만 한 번만 수행하면 향후 프로젝트에서 결과를 재사용 할 수 있습니다.
예를 들어 반응으로 magento에 이미 프로젝트가 있습니다.
: 여기에 멋진 리카르도 템페에서 보라입니다 https://www.youtube.com/watch?v=ElZ5UtTXpzQ
반응 사이에 또한 여기에 프록시를 찾을 수 젠토는 : https://github.com/McFizh/magento2-react
당신은 온라인으로 간단한 검색으로 더 많은 것을 찾을 수 있습니다.


실제로 내가 요청한 이유는 설치 단계 인터페이스가 Angular를 사용하고 있기 때문에 여기에 묻는 주요 이유였습니다. 설치 단계에서 Angular를 사용하는 경우 필요 대신 사용할 수 있습니다. 녹아웃이 데이터 바인딩에 Jquery Ajax를 사용하는 유일한 이유는 그들이 선택한 이유입니다. 나는 당신이 무슨 뜻인지 이해하기를 바랍니다. 그것은 질문을 할 필요가있을뿐만 아니라 설치를 위해 다른 js fw를 변경하고 나머지 지역을 위해 magento를 변경할 필요가 있습니다.
Gagan

설치 프로그램은 별도의 작은 응용 프로그램입니다. 다른 팀에서 만든 것일 수도 있습니다.
Marius

7

공식적인 이유를 모르지만 그것을 사용한 Knockout은 훨씬 더 가벼워 보이며 최소한의 Angular 또는 React보다 Magento2 프론트 엔드 템플릿과 통합하기 위해 필요한 최소한의 필수 요소를로드합니다.

또한 쉬운 방법 RequireJS와 gulp는 녹아웃과 자동으로 혼합되어로드 시간과 파일 크기를 줄이는 것이 중요했을 것으로 예상되지만 Magento2를 계획 할 때는 상당히 특정한 프런트 엔드 속도가 주요 고려 사항이었습니다.


네 속도가 이유가 될 수 있습니다. 실제로 Magento는 "SPEED"로 유명하며 녹아웃이 너무 빠르면 Angular를 대체 할 수 있습니다. 그러나 Angular가 더 빠르다고 확신하지만 100 % 확신하지는 않습니다.
Gagan

3

더 좋은 질문은 왜 m2가 프론트 엔드와 그렇게 많이 결합되어 있는가하는 것입니다.

M2가 출시되었을 때 이미 많은 JS 프레임 워크가있었습니다.

M2 사람들이 다음과 같은 경우 훨씬 더 인기가 있었을 것입니다.

  • 전 처리기, 번 들러, 컴파일러, less, sass 등을 선택했습니다.
  • angular1-5-n과 같이 어떤 프레임 워크를 사용할지 선택할 수있는 자유가있었습니다.
  • CSS 프레임 워크, 부트 스트랩 1-4, 기초, 그리드 등을 자유롭게 사용할 수 있습니다.

기본적으로 많은 ET ALS. 그러나 아니오, 그들은 당신이 오버 엔지니어링 된 프론트 엔드, XML 기반 괴물을 사용하도록 강요합니다.

좋은 점은 REST API가 있으므로 헤드리스를 사용하여 점진적인 웹 앱을 구축 할 수 있다는 것입니다.


나는 NL에서 PWA와 React에 초점을 맞추고 있다고 생각하는 최신 마 젠토 모임을 발견했다. 그래서 @ ben-crook이 가리키는 곳이라고 생각한다.
Gagan

1
@Gagandeep이 github.com/DivanteLtd/vue-storefront도 있습니다. 나는 개인적으로 오버 엔지니어링되지 않은 프레임 워크를 좋아하며 작업 방법에 대한 더 많은 자유를 제공합니다. 대부분 서비스, 모델 및 도우미를 제공합니다. TLDR; 불가지론 적 틀. 개인적으로 스택 선택은 Angular5 (n), bootstrap 4, sass, typescript 및 webpack입니다.
Miguel Felipe Guillen Calo

0

걱정하지 마십시오. Anton Kril이 MageConf2017에서 발표 한 것처럼 Magento2 프론트 엔드는 2.4 버전부터 반응 할 것입니다. 또한 Redux와 GraphQL도 있습니다. 하지만 ... Knockout.js는 그대로 유지됩니다.


이것은 올바르지 않습니다. Magento 2.4는 React를 사용하지 않으며 Magento 2는 여전히 동일한 스택 (Knockout 포함)을 사용합니다. 당신이 말하는 것은 Magento가 날짜를 발표하지 않은 PWA Studio 입니다.
벤 크룩

그들은 여전히 ​​특정 스택을 사용하도록 강요합니다. 정말 충격적입니다.
Miguel Felipe Guillen Calo

@MiguelFelipeGuillenCalo 아니요, 실제로는 아닙니다. PWA Studio의 아이디어는 새로운 GraphQL API에 연결되어 사용하려는 프런트 엔드 기술을 사용하고 필요한 것을 서버에서 간단히 가져올 수 있다는 것입니다. 현재 REST API는 다른 webapi영역을 사용하기 때문에 이것을 어렵게 만듭니다 . 새로운 API가 적합합니다. PWA Studio는 필요한 사람들에게 기반을 제공하는 방법입니다.
Jisse Reitsma

@JisseReitsma community.magento.com/t5/Magento-DevBlog/… 이것은 어떤 스택을 사용할지 명확하게 나타냅니다. 기능을 확장해도 해당 스택에 남아있을 수 있습니다. 따라서 특정 스택을 사용하도록 강요합니다.
미구엘 펠리페 Guillen Calo

@MiguelFelipeGuillenCalo 알고 있습니다. 그러나 자신을 만들 수있는 유일한 스택이 Magento가 빌드하는 스택이라는 것을 의미하지는 않습니다. 그렇습니다. 제로 작업을 원하지 않고 Magento가 빌드 한 것만 사용하려면 스택이 사용됩니다. 그러나 요점은 "아직도 여전히 특정 스택을 사용하도록 강요"하고 있다는 사실입니다. 그들은 자신의 스택을 작성하지만 그것을 사용하도록 강요하지는 않습니다. 대신, GraphQL API 위에 스택을 빌드하고 해당 API 위에 자신의 스택을 구축 할 수 있습니다. 유연성이 훨씬 뛰어나므로 원하는 유연성을 갖습니다.
Jisse Reitsma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.