Hello!
1. Why Flux?
Flux is way to pass your data around in a simple unidirectional flow:
In a MVC (or two-way-binding) system:
Add a little complexity and things get out of hand really fast with events triggering changes that you don't know where it comes.
With Flux you can remove a lot of this complexity by having one source of true.
2. Why Redux vs vanilla flux?
Flux isn't a library, it's an idea (and a Dispatcher) so you have to create your own version. As you app grows you'll end up with a few different stores.
Ex: ComponentA needs UserStore, CommentStore, FavoriteStore and so on. A lot of listeners and unsubscribes. With plain Flux you'll have multiple flows, one for each store.
Redux came to help with this. It's a state container with a "single" store with multiple branches representing different parts (flux stores) of your app.
It's a similar sequence but you don't need to worry about which store your components are subscribed or which actions you can dispatch.
--
I think this course it's a good introduction to Redux: egghead.io/courses/getting-started-with-redux - from the creator, Dan Abramov
Also, this is a good post about Flux: http://blog.andrewray.me/flux-for-stupid-people/
[s]