저는 현재 ES6 및 Marionette v3을 사용하여 Marionette 코드베이스를 다시 작성하고 있습니다.Demeter의 법칙을 위반하지 않고 Marionette 모듈 간의 통신을 처리하는 것이 가장 좋습니다
두 개의 서브 모듈 (ProductShowRoute
, CartManager
등)이 모두 내 메인 App
에서 시작되었습니다.
저는 여러분이 어떻게 모듈 간의 통신을 관리하는지 궁금합니다. 이전의 Marionette 앱에서는 통신이 너무 바빴고 Backbone.Wreqr
을 사용하여 너무 많이 보내졌습니다.
사용자가 장바구니에 제품을 추가하면 ProductsModule
에 CartModule
에 대해 알릴 필요가 있습니다. 스파게티 코드를 너무 많이 쓰지 않고 어떻게 의사 소통을 조직합니까? Backbone.Radio
/Backbone.Wreqr
은 훌륭한 도구이지만 모듈을 잘못 사용하거나 모듈간에 너무 많은 일이 발생하면 어떤 이벤트가 어디서 끝나는 지 알기가 어렵습니다.
또한 경로를 변경하는 방법에 대해 궁금합니다. 나는 App.navigate(‘route’, { trigger: true })
의 사용에 대해 경고 한 Derick Bailey의 블로그 게시물을 읽었지만, Marionette Wires에 나는 이것이 몇 번 일어나는 것을 보았습니다. trigger: true
정말 사용이 나쁜가요? 그리고 우리는 어떤 대안을 가지고 있습니까? 이전에 Backbone.Wreqr
을 사용했는데 각 모듈의 Router
을 호출하고 경로를 변경합니다.하지만 많은 의사 소통이 앞뒤로 진행되는 것처럼 보입니다.
고맙습니다.
버논 subApps 사이의 통신에