Сначала цитата из Vuex doc :
Когда я должен это использовать?
Хотя Vuex помогает нам иметь дело с общим управлением состоянием, оно такжеидет со стоимостью большего количества понятий и шаблонов.Это компромисс между краткосрочной и долгосрочной производительностью.
Если вы никогда не создавали крупномасштабный SPA и не прыгнули прямо в Vuex, это может показаться многословным и пугающим.Это совершенно нормально - если ваше приложение простое, вам, скорее всего, будет хорошо без Vuex.Простой шаблон магазина может быть все, что вам нужно.Но если вы строите средне-крупномасштабный SPA, скорее всего, вы столкнулись с ситуациями, которые заставляют задуматься о том, как лучше обрабатывать состояние вне ваших компонентов Vue, и Vuex станет для вас естественным следующим шагом.Вот хорошая цитата Дана Абрамова, автора Redux:
«Библиотеки Flux похожи на очки: вы будете знать, когда они вам нужны».
Когда и если ваши компонентыстановятся очень большими, потому что они имеют много разных состояний и делают много разных мутаций состояний, становится все сложнее рассуждать об их коде и поддерживать или расширять их.Это происходит, когда становится интересным развязывание хранения состояния и модификации от самого компонента.
Рассмотрим также случай, когда несколько компонентов могут запускать одни и те же действия или мутации.В этом случае становится очевидным, что последний должен быть извлечен в общий объект / класс / файл, чтобы избежать дублирования логики.Как только вы дойдете до этой точки, вы уже очень приблизитесь к Vuex-подобной структуре.
Кроме того, приложение, которое взаимодействует с внутренним API, будет включать асинхронные вызовы ajax, обработку ошибок и т. Д. Если всеон находится в том же файле, что и компонент, он будет очень длинным и снова трудным для чтения и понимания.
Извлечение всех мутаций в отдельный модуль Vuex облегчает их тестирование в отдельности без необходимости создания экземплярафактические компоненты Vue, которые их используют.Компоненты Vue могут быть (в основном) исключительно для логики отображения и реагирования на события.
Как вы можете видеть, все дело в придании вашему приложению лучшей структуры.Все эти причины складываются в более крупном приложении, чтобы упростить его обслуживание.
Наконец, Vuex добавляет замечательные функции, такие как отслеживание состояния и откат с плагином Vue.js devtools.Это позволяет проверять состояние в любой точке выполнения приложения и помогает понять все изменения, внесенные в него.Ниже приведен снимок экрана.
Короче говоря, чтобы ответить на ваш вопрос: нет, Vuex не является критически необходимым и его следует использовать, когда это имеет смысл, поскольку может принести больше необоснованного многословия.в некоторых случаях.