DEV Community

Discussion on: Is this stack over-engineered?

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

I'd also add that I am not convinced that Vuex is right. I have to create lists and items, remove lists and items and if you imagine an item is scoped to its list, does anyone really need to know about each other. But then again I don't like props at all, not one but. They should be used for differentiation between components in my book, not a means to pass data along. But vuex moves us back to centralisation (is that bad). I can't decide.

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) 😉

Collapse
 
seanmclem profile image
Seanmclem

I've used vuex for less. I usually only use local storage if I need to persist between a refresh

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

Overengineering is my biggest fear in development, the problem was introduced to me when I first started development at Dyson, I take it very seriously. I took vuex out to find alternatives