В настоящее время я работаю над переписыванием нашей кодовой базы Marionette с использованием ES6 и Marionette v3.Лучше всего общаться с модулями Marionette без нарушения Закона Деметры
Я создал пару подмодулей (ProductShowRoute
, CartManager
и т. Д.), Которые все начаты с моего основного App
.
Мне было интересно, как вы, ребята, управляете связью между модулями. В наших предыдущих приложениях Marionette общение было слишком сумасшедшим, и слишком много было отправлено с использованием Backbone.Wreqr
.
Когда пользователь добавляет товар в свою корзину, наш ProductsModule
должен сообщить об этом CartModule
. Как вы организуете это общение, не пиши слишком много кода спагетти? Backbone.Radio
/Backbone.Wreqr
- отличные инструменты, но при неправильном использовании (или слишком много вещей, происходящих между модулями) трудно понять, какие события заканчиваются там.
Кроме того, мне интересно, как вы меняете маршруты. Я прочитал сообщение в блоге от Derick Bailey, который предупредил об использовании App.navigate(‘route’, { trigger: true })
, но в Marionette Wires Я видел это случается пару раз. Является trigger: true
действительно ли это плохо? И какие у нас альтернативы? Для этого мы использовали Backbone.Wreqr
, который вызывает Router
каждого модуля и изменяет маршрут, но это похоже на то, что много сообщений происходит взад и вперед.
Большое спасибо!
Вернона