Hi. Dan Abramov, the author of Redux, wrote a short, simple explanation of what Redux is ([0]).
Another way that I like to describe it: Redux is a small wrapper for storing a single variable (usually an object). You provide a function with all the logic for updating that value, and Redux will call your function with the old value and some info on what just happened (also from your own code). Redux saves the new result, and acts like a simple change event emitter, letting any interested code know that something just changed.
The term "reducer" is because the function you provide to Redux acts like the callback you would pass to `Array.reduce()`, which takes in the old value and current item as arguments, and returns a new value.
Got a few more links for you. First, I keep a big list of links to high-quality tutorials on React, Redux, and related topics, at [1]. Specifically intended to be a great starting point for anyone trying to learn the ecosystem.
Second, Dan Abramov has a couple video tutorial series that walk you through the basic ideas of Redux step by step ([2]). You should definitely watch through those.
Third, I have a list of some selected real applications that have been built with Redux ([3]). One of the categories in my React/Redux links list has a bunch of "best practices / lessons learned" articles ([4]), which are also based on the experience of real companies that have used Redux to build real products. To name a few random examples: Mozilla is using Redux in Firefox's Developer Tools; Wordpress is using it in their new admin UI; Twitter uses it in their mobile site; and many more.
Another way that I like to describe it: Redux is a small wrapper for storing a single variable (usually an object). You provide a function with all the logic for updating that value, and Redux will call your function with the old value and some info on what just happened (also from your own code). Redux saves the new result, and acts like a simple change event emitter, letting any interested code know that something just changed.
The term "reducer" is because the function you provide to Redux acts like the callback you would pass to `Array.reduce()`, which takes in the old value and current item as arguments, and returns a new value.
Got a few more links for you. First, I keep a big list of links to high-quality tutorials on React, Redux, and related topics, at [1]. Specifically intended to be a great starting point for anyone trying to learn the ecosystem.
Second, Dan Abramov has a couple video tutorial series that walk you through the basic ideas of Redux step by step ([2]). You should definitely watch through those.
Third, I have a list of some selected real applications that have been built with Redux ([3]). One of the categories in my React/Redux links list has a bunch of "best practices / lessons learned" articles ([4]), which are also based on the experience of real companies that have used Redux to build real products. To name a few random examples: Mozilla is using Redux in Firefox's Developer Tools; Wordpress is using it in their new admin UI; Twitter uses it in their mobile site; and many more.
Hopefully that helps!
[0] https://www.reddit.com/r/reactjs/comments/4npzq5/confused_re...
[1] https://github.com/markerikson/react-redux-links
[2] https://egghead.io/series/getting-started-with-redux
[3] https://github.com/markerikson/redux-ecosystem-links/blob/ma...
[4] https://github.com/markerikson/react-redux-links/blob/master...