Если вы не хотите использовать хранилище Vuex (что является рекомендуемым способом - и вы можете просто разделить бизнес и состояние приложения в 2 разных модулях Vuex), то рекомендуется хранить такие переменные в корневом экземпляре Vue ( один в вашем main.js
)
Проблема с глобальными переменными (свойства a.k.a window
) заключается в том, что они не являются реактивными. Вы можете попробовать использовать this.$set(window, 'showFilters', true)
, но это ужасно и может не сработать.
Но даже помещая ваши переменные в корневой экземпляр Vue, вам все равно нужно информировать ваши компоненты об измененном значении - и вы можете сделать это, отправляя только события (наблюдатель может только наблюдать за изменениями внутри одного компонента, а не между компонентами). )