It's unlikely that you will choose a flux lib that will be the make or break point of your application.
Even if a library stops being "maintained", most decent flux incarnations are really small (~100 LoC) - it's unlikely that there's some fatal flaw you'll be stuck with.
In summary: redux is neat, but don't beat yourself up over choosing the perfect flux lib - just grab one that you like the look of and move on with building your application.
Docs are incomplete:
Here's an example of the “getters” concept with Redux: https://github.com/faassen/reselect. (Sorry, no README yet :-( ). They don't have to be inside the core.
It's not "Pure" Flux, which is the reason I like it, it doesn't deal with a Dispatcher and it has syntactic sugar for 'common' use-cases, most Rails dev enjoy stuff like that.
Seems like Reflux can't have hot-reloading because there is no (public?) dispatcher to replay values :-/
Ran across a good writeup here: https://www.reddit.com/r/javascript/comments/3ap0y6/flux_no_...
There is no 100% correct way to build complex single page web apps but there is definitely a wrong way and that way looks increasing like progressive enhancement sadly...
I am currently in the early stages of starting a project and I want to use react+flux. However with the different variants of flux finding the one that is the best fit and is going to be maintained a year from now isn't an easy task. I think I might end up using the facebook variant as I'm fairly certain that they will continue to maintain it.
For the reader. This starts to grow quite quickly.
import SearchActions from './actions/searchActions.js';
import VideoActions from './actions/videoActions.js';
import VideoMetaActions from './actions/videoMetaActions.js';
import MusicPlayerActions from './actions/musicPlayerActions.js';
import SearchStore from './stores/searchStore.js';
import VideoStore from './stores/videoStore.js';
import VideoMetaStore from './stores/videoMetaStore.js';
import MusicPlayerStore from './stores/musicPlayerStore.js';
class Flux extends Flummox {
constructor() {
super();
this.createActions('search', SearchActions);
this.createStore('search', SearchStore, this);
this.createActions('video', VideoActions);
this.createStore('video', VideoStore, this);
this.createActions('videoMeta', VideoMetaActions);
this.createStore('videoMeta', VideoMetaStore, this);
this.createActions('musicPlayer', MusicPlayerActions);
this.createStore('musicPlayer', MusicPlayerStore, this);
}
}
What is more, store registration could be improved as well const videoMetaActions = flux.getActions('videoMeta');
this.register(videoMetaActions.setAudioVolume, this.handleAudioVolume);
this.register(videoMetaActions.setMusicVolume, this.handleMusicVolume);
this.register(videoMetaActions.setMusicUrl, this.handleMusicUrl);