Для небольшого приложения, которому нужен только простой шаблон управления состоянием. Я всегда использую один компонент для хранения состояния приложения — контейнер. Это действует как единственный источник правды для приложения, чтобы ссылаться на свои состояния. Vue предоставляет механизм для создания глобального прослушивателя событий под названием EventBus
, который является очень простым способом имитации потоковой архитектуры.
Все, что вам нужно, это один модуль, который экспортирует Vue как EventBus
вот так
Затем вы можете использовать его внутри своего контейнера для listen
события из любого компонента внутри приложения. Обычно я добавляю слушателя на created
жизненный цикл.
Затем вы можете импортировать EventBus
в любой из ваших компонентов, и вы можете запускать my-custom-event
из любого места без необходимости emit
события для родителя этого компонента и повторять весь процесс в каждом компоненте между компонентом, который инициирует изменение, и целевым контейнером.
Вот как может выглядеть CustomButton
Вот и все. По мере того, как ваше приложение становится больше, вы можете рассмотреть возможность использования Vuex, особенно если многие контейнеры имеют общие состояния.
Ваше здоровье!