Before we introduce Vuex, let's take a look at different methods of state management in different web apps.
In a traditional web application that creates fresh pages when navigating through hyperlinks, there is very little state management required because the state is lost once users navigate to another page. In these applications, pages are generated dynamically on the backend. Most of the state of the application is kept on the server side.
Another type of web application is a single-page application (SPA). Different from a traditional app, an SPA has no page refreshes and it moves some of the logic from the backend to the frontend. Accordingly, it needs to keep some of the states on the client side. This brings complexity to frontend development. With frameworks such as Backbone.js, patterns similar to MVC are introduced into the frontend. (These patterns are usually referred to as MV*.) And, usually, the state of the application is kept inside global variables...