I have a very large application in production now using a custom flux implementation (since the flux wars have finally died down Alt & Redux taking the lead).
There'll be some documentation & examples around Redux specifically, but the gist is you'd do something like this (not using any Flux library in particular here):
// Flux - watch UserStore for changes & provide "props.userStore".
@connectToStore(UserStore)
// Flux - provide actions as props for the resolver or component to use.
@bindActions(function(dispatcher) {
return {
create: dispatcher.actions.User.create,
save: dispatcher.actions.User.save,
};
})
// Resolver -
@resolve("user", function({ create, userStore }) {
return userStore.getCurrent() || create("New User");
})
// Now your component always has the latest, updated user
export default UserProfile extends React Component {
Watch the repo for some more examples, as there'll be both Alt & Redux examples.How you choose to fetch data is up to you, whether you use Flux, or fire AJAX calls within the `@resolve` function.
That's your code, not mine. I just make it so you can put your data requirements _beside_ your component instead of several layers up :)
I intentionally didn't couple this with a specific Flux lib since _this solves an entirely different problem_ than maintaining application state.
Look forward the Redux & Alt example, though, as those will have a very terse, so you won't have to use your imagination anymore!
It looks like we've landed on about the same architectural solution given React's synchronous nature.
I'll have to check it out in more detail as, to be honest, I was more aware of the Nexus Flux library.