Что такое Vuex и зачем это нужно? Давайте разберемся в этом вопросе. 

Vuex - это обычная библиотека, которая используется для приложений написанных на фреймворке Vue.js. Она создавалась разработчиками самого фреймворка. 

Официальный сайт:

https://vuex.vuejs.org

Основная идея Vuex в том, что эта библиотека создавалась для того, чтобы решить проблему централизованного хранилища данных того приложения Vue.js, которое вы разрабатываете.

Когда мы разрабатываем приложение на Vue.js, мы имеем дело с множеством компонентов, которые в этом приложении используются. Эти компоненты вложены один в другой и получается сложная древовидная структура. 

У каждого компонента есть data (уровень данных), в котором находятся данные относящиеся к этому компоненту. 

Но, в процессе работы приложения возникает момент, что нужно передавать данные из одного компонента в другой. Когда что-то изменилось в одном компоненте, нужно передать данные в другой.

Из родительского компонента в дочерний данные передаются с помощью props, а обратный процесс происходит с помощью emit.

Все ничего, но представьте, что нужно передать данные от компонентов, которые находятся в разных ветках. Данным нужно будет пройти очень большой путь.

Такая ситуация плоха с точки зрения производительности приложения и с точки зрения скорости программирования. Нужно будет прописать много кода во многих компонентах, чтобы обеспечить такой обмен данными.

Разработчики Vue.js предложили решение в виде центрального хранилища данных Vuex. В этом хранилище будут храниться какие-то общие данные, которые могут применяться в любом компоненте приложения. Взаимодействие (обмен данными) между компонентами будет выполняться через центральное хранилище.

Vuex - это не обязательный элемент приложения Vue.js, можно разрабатывать приложения и без него, но для сложных приложений - это значительно упрощает жизнь разработчика.