DEV Community

Discussion on: Is this stack over-engineered?

Collapse
 
anwar_nairi profile image
Anwar

I have the feeling Vuex can be hijacked for things it has not been designed to.

If you do not need to manipulate a data you have created in your component, do not use Vuex, it will be simpler to manage it in the component itself.

That being said... I have the tendency to use it for every state mutations. Like even if this is not necessary. I just like the action / mutations / getters split. It makes my code so clean.

Just a question of taste I guess. What is great with Vue is that it will work even if you do not use Vuex.

À other tips, if you are more an MVC guy, take a look at VuexORM 😉

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

I have the same tendency, Vue become UI logic only and business logic is just in one place, it sounds so appealing. But I had a think, if I really want centralisation I could use the root state of my app, it certainly makes things clearer what is local to my component and what is global.

I have to say state management responsibilities are so very confusing in modern JavaScript!

Thread Thread
 
anwar_nairi profile image
Anwar

Flux pattern is not intuitive, mostly from the point of view of people like us used to classic one way MVC I admit.

Like they said,

Vuex is like glasses. You will now when you need it.

And I think this is brilliantly said, because it should just make sense to you or you should not use it because it would become less productive than without.

In the end, like you said it is very suitable for architectures where you have a good separation between your UI (Vue) and your business (whatever server side programming language that serves data via a REST/GraphQL API) 😉