Reselect is a selector library for Redux.
Reselect is a selector library which uses memoization. It was originally written to compute derived data from redux-like applications state, but it's not strictly coupled to any specific architecture/library.
Reselect keeps a copy of the last inputs/outputs of the last call, and recomputes the result ONLY IF one of the inputs changes. If the the same inputs are provided twice in a row, Reselect return the cached saved output.
Reselect's memoization and caching are fully customizable.