Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Redux: vuex, state, mutation

В чём разница между state, mutations и actions в Vuex?

Вопрос проверяет понимание архитектуры централизованного хранилища состояния и разделения ответственности во Vuex.

Короткий ответ

state хранит данные приложения. mutations отвечают за синхронное изменение состояния. actions используются для асинхронной логики и в итоге вызывают mutations. Такое разделение делает управление состоянием предсказуемым и прозрачным. Это ключевая идея Vuex.

Длинный ответ

Vuex строится вокруг чёткого разделения ролей между разными сущностями хранилища.

State

state — это единый источник истины.

Особенности:

  • хранит данные приложения

  • реактивен

  • используется компонентами для отображения UI

Пример:

state: {
  user: null,
  isLoading: false
}

Mutations

mutations отвечают за изменение состояния.

Особенности:

  • всегда синхронные

  • единственный допустимый способ изменить state

  • легко отслеживаются при отладке

Пример:

mutations: {
  setUser(state, user) {
    state.user = user;
  }
}

Actions

actions инкапсулируют бизнес-логику.

Особенности:

  • могут быть асинхронными

  • не изменяют state напрямую

  • вызывают mutations

Пример:

actions: {
  async fetchUser({ commit }) {
    const user = await api.getUser();
    commit('setUser', user);
  }
}

Логика взаимодействия

  1. Компонент вызывает action

  2. Action выполняет логику

  3. Action коммитит mutation

  4. Mutation изменяет state

Вывод

state, mutations и actions образуют предсказуемый поток данных, упрощающий управление сложным состоянием приложения.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Redux

    Redux

Ключевые слова

#vuex

#state

#mutation

Подпишись на React Developer в телеграм