I was wondering what the best practice or convention is when creating stores in Flux when working with an API
Let's say we have a list of 'projects', the API call would eventually fill a Store called ProjectStore in _projects
Then, when a user selects a project, you want to load the Project specific data. Would you add this to the same ProjectStore as _activeProject, or create a seperate Store for it?
Same for when you load the Todo's within that Project. It would make sense to put these in a TodoStore, but what about a specific Todo within the Todos within the Project?
I hope the above makes sense :)
I would use the ProjectStore
to store both _projects
and _activeProject
.
I have done as a rule in my React projects to create a new store for each model.
For instance: Let's say that I have an application that serves messages and accounts. I would then have a MessageStore
and an AccountStore
. Then use these accordingly to their domain.
E.g., when I want to get some messages from the backend (through an API), I store them in the MessageStore
. The same goes for the AccountStore
.
As your project becomes larger and larger, you would probably have to reconsider refactoring something into a new store. For instance, if you want to add advertisement to your site, you could create an AdsStore
.
My rule of thumb is to try to separate stores by their domain, but don't make the structure more complex than it has to be.
Hope that helped.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With