A reducer library for Redux that enables efficient reducer dependencies through aggressive memoization, similar to Reselect but for reducers.
Rereduce is a reducer library for Redux that enables reducers to depend on each other efficiently through aggressive memoization. It solves the problem of reducer interdependencies without requiring direct queries to the Redux store, maintaining performance and compatibility with time-travel debugging and server-side rendering.
Developers building Redux applications who need efficient reducer dependencies and want to avoid imperative store queries, particularly those familiar with Reselect or Flux patterns.
Developers choose Rereduce for its purely functional approach to reducer dependencies, aggressive memoization that optimizes performance, and seamless integration with Redux features like time-travel debugging and server-side rendering.
Reducer library for Redux
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Replaces the imperative waitFor pattern from Flux with a purely functional approach, allowing reducers to depend on each other without querying the store directly, as highlighted in the README.
Uses aggressive memoization to reduce unnecessary computations in reducer chains, improving efficiency for complex state dependencies.
Maintains stateless pure functions, ensuring seamless integration with time-travel debugging and server-side rendering, as stated in the key features.
Includes a __dependencies attribute that aids in efficient Redux store serialization and deserialization, though it requires careful handling.
The API is described as a first draft and may change, leading to potential breaking changes and uncertainty for production use, as noted in the README.
Users must manage the __dependencies attribute for proper store serialization, adding an extra layer of complexity and potential for errors.
Aggressive memoization, while boosting performance, can increase memory usage, which might be problematic in large-scale applications with many reducer dependencies.
With a brief README and only basic examples, developers may find it challenging to implement advanced use cases or troubleshoot issues effectively.