В чем разница между Vuex и глобальной переменной

«В чем разница между Vuex и глобальной переменной» — вопрос из категории Vue, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Vuex — это state-менеджер для Vue, обеспечивающий централизованное управление состоянием с реактивностью, строгим контролем изменений (мутациями) и инструментами для отладки (например, Vue DevTools). Глобальная переменная — просто переменная в window, без реактивности и контроля изменений.

Пример Vuex:

const store = new Vuex.Store({
  state: { count: 0 },
  mutations: {
    increment(state) { state.count++ }
  }
});
// Изменение через мутацию
store.commit('increment');

Глобальная переменная:

window.globalCount = 0;
// Любой код может изменить её напрямую
window.globalCount++;

Ключевые отличия:

  • Реактивность (Vuex обновляет компоненты автоматически)
  • Предсказуемость изменений (мутации/actions)
  • Инструменты разработчика
  • Модульность и структура