Как правильно использовать изолированные модули в JS?

Такие дела.

Сегодня я в тысячный раз осознал, что не смыслю в JS (сколько бы раз мне не казалось, что я постиг дзен).
Строю логику JS на модулях с помощью browserify.
Каждый модуль - это класс.

И вот я работаю, проект растет, начинаю модули подключать друг к другу.
И тут я понял, что каждый модуль на 1000% живет по своему и не знает о других: мне надо было использовать переменные модуля, заданные в конструкторе (this.mode = 'search'), в других модулях. Т.е. этот модуль должен отвечать за режим на сайте - режим поиска или обычный.

Но это оказалось невозможным. Так же, как и использовать переменные этого модуля (измененные внутри него) в методах этого модуля, вызываемых в других (надеюсь, понятно).

Как же тогда быть в такой ситуации?
Мне надо, чтобы все-все модули понимали, что сайт в определенном режиме.
  • Вопрос задан
  • 383 просмотра
Пригласить эксперта
Ответы на вопрос 3
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
То что модули изолированы и ничего не знают друг о друге - это абсолютно правильный подход избавляющий от многих проблем
А для хранения общего состояния приложения посмотрите в сторону redux
Ответ написан
Комментировать
mlnkv
@mlnkv
JavaScript Developer
Используйте события для общения модулей
https://github.com/developit/mitt

у твиттера есть событийно ориентированый фреймворк
https://flightjs.github.io/
Ответ написан
Комментировать
AMar4enko
@AMar4enko
Денис, вы нам сделайте пример на гитхаб. У вас, судя по всему, отсутствует понимание какой-то маленькой детали, а какой мы, в свою очередь, понять не можем, потому что вы не можете объяснить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы