Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. It also integrates with Vue's official devtools extension to provide advanced features such as zero-config time-travel debugging and state snapshot export / import.
Vuex helps us deal with shared state management with the cost of more concepts and boilerplate. It's a trade-off between short term and long term productivity. It is a self-contained app with the following parts:
If you've never built a large-scale SPA and jump right into Vuex, it may feel verbose and daunting. That's perfectly normal - if your app is simple, you will most likely be fine without Vuex. A simple store pattern (opens new window)may be all you need. But if you are building a medium-to-large-scale SPA, chances are you have run into situations that make you think about how to better handle state outside of your Vue components, and Vuex will be the natural next step for you. There's a good quote from Dan Abramov, the author of Redux:
<quote>Flux libraries are like glasses: you’ll know when you need them.</quote>
This page is a work in progress. Help us by writing a small introduction to the topic and suggesting a few links to read more about this topic.
Edit this PageThe project is OpenSource, 6th most starred project on GitHub and is visited by hundreds of thousands of developers every month.
A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.
Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.
Free subscription for updates
Support the project by paying as little as 5$ per month