The relationship between data, component states, and the actions that affect them is a fundamental and unavoidable layer to manage when building a component or application. Vue does not provide a way to structure and encapsulate data, so most projects use plain objects and implement their own patterns to communicate with the server.

This is perfectly fine for small applications, but can quickly become a lot to manage when the size of your project and team increases:

Communicating with the server to fetch, save, and delete.

Managing model states like empty, active and saved.

Managing component states like loading, saving, and deleting.

When we started to use Vue more extensively at Figured, we noticed that every team had a slightly different way of doing this, so we decided to develop a standard solution that is flexible enough to accommodate most use cases in a consistent way, while preserving reactivity and testability.

Introducing vue-mc, a small library that makes data and state management easier, safer, and more consistent. We’ve been using it in production for over a year now, and only recently decided to make it open source so that others may also benefit from it and contribute to its development in return.

http://vuemc.io