Redux Libraries & Learning Material
Redux is a state container for JavaScript apps.
Contents
Code Architecture
Aims to improve the overall structure of the source code. Makes
reasoning about the code easier.
-
redux-schema -
Automatic actions, reducers and validation for Redux.
-
redux-tcomb -
Immutable and type-checked state and actions for Redux.
-
redux-action-tree
- The Cerebral signals running with Redux.
-
redux-elm - The Elm
Architecture in JavaScript.
Utilities
-
redux-orm -
Small, simple and immutable ORM to manage relational data in your Redux
store.
-
redux-api-middleware
- Redux middleware for calling an API.
-
redux-ignore -
Higher-order reducer to ignore Redux actions.
-
redux-modifiers
- Collection of generic functions for writing Redux reducers to operate
on various data structures.
-
rereduce - Reducer
library for Redux.
-
redux-search
- Redux bindings for client-side search.
-
redux-logger
- Logger middleware for Redux.
-
redux-immutable -
Redux-immutable is used to create an equivalent function of Redux
combineReducers that works with Immutable.js state.
-
reselect - Selector
library for Redux.
-
redux-requests -
Manages in-flight requests with a Redux reducer to avoid issuing
duplicate requests.
-
redux-undo - Higher
order reducer to add undo/redo functionality to Redux state containers.
-
redux-bug-reporter
- Bug reporter and bug playback tool for Redux.
-
redux-transducers
- Transducer utilities for Redux.
Store Persistence
Side Effects
Side Effects / Asynchronous Actions
-
redux-saga -
Alternative side effect model for Redux apps.
-
redux-promise-middleware
- Redux middleware for resolving and rejecting promises with conditional
optimistic updates.
-
redux-effects
- You write pure functions, redux-effects handles the rest.
-
redux-thunk - Thunk
middleware for Redux.
-
redux-connect
- Provides decorator for resolving async props in react-router,
extremely useful for handling server-side rendering in React.
-
redux-loop - Port
of elm-effects and the Elm Architecture to Redux that allows you to
sequence your effects naturally and purely by returning them from your
reducers.
-
redux-side-effects
- Redux toolset for keeping all the side effects inside your reducers
while maintaining their purity.
-
redux-logic -
Redux middleware for organizing business logic and action side effects.
-
redux-observable
- RxJS middleware for action side effects in Redux using “Epics”.
-
redux-ship -
Composable, testable and typable side effects.
Code Style
Aims to make parts of the source code easier to read/write.
-
redux-act -
Opinionated lib to create actions and reducers for Redux.
-
redux-crud - Set of
standard actions and reducers for Redux CRUD Applications.
React Integration
Routing
-
redux-async-connect
- It allows you to request async data, store them in Redux state and
connect them to your React component.
-
redux-tiny-router
- Router made for Redux and made for universal apps. Stop using the
router as a controller, it’s just state.
-
redux-router -
Redux bindings for React Router – keep your router state inside your
Redux store.
-
react-router-redux
- Ruthlessly simple bindings to keep react-router and Redux in sync.
-
ground-control
- Scalable reducer management & powerful data fetching for React
Router & Redux.
-
redux-form - Higher
Order Component using react-redux to keep form state in a Redux store.
-
react-redux-form
- Create forms easily in React with Redux.
Component State
Other Integrations
Flux
Backbone
-
backbone-redux
- Easy way to keep your backbone collections and Redux store in sync.
Falcor
-
redux-falcor -
Connect your Redux front-end to your falcor back-end.
RxJS
-
redux-observable
- RxJS middleware for action side effects in Redux using “Epics”.
-
rx-redux -
Reimplementation of Redux using RxJS.
-
redux-rx - RxJS
utilities for Redux.
-
redurx - Redux'ish
Functional State Management using RxJS.
Electron
-
redux-electron-store
- Redux store enhancer that allows automatic synchronization between
electron processes.
Deku
Other
-
redux-rollbar-middleware
- Redux middleware that wraps exceptions in actions and sends them to
Rollbar with current state.
-
kasia - React
Redux toolset for the WordPress API.
Boilerplate
Boilerplates / Scaffolds / Starter Kits / Generators / Stack
Ensembles
-
redux-cli -
Opinionated CLI for building Redux/React apps quicker.
-
reactuate -
React/Redux stack (not a boilerplate kit).
-
react-chrome-extension-boilerplate
- Boilerplate for Chrome Extension React.js project.
-
universal-redux
- Npm package that lets you jump right into coding React and Redux with
universal (isomorphic) rendering. Only manage Express setups or Webpack
configurations if you want to.
-
generator-react-aspnet-boilerplate
- Starting point for building isomorphic React applications with ASP.NET
Core 1, leveraging existing techniques.
-
generator-redux
- CLI tools for Redux: next-gen functional Flux/React with devtools.
-
generator-react-webpack-redux
- React Webpack Generator including Redux support.
-
socrates -
Small (8kb), batteries-included Redux store to reduce boilerplate and
promote good habits.
Miscellaneous
Learning Material
-
Redux’s concepts
Redux official documentation does a
great job at explaining Redux’s core principles.
-
Why immutable data structures
The
guide on performance
of React’s official documentation explains well what immutable data
structures are and why they play an important role.
-
Side Effects
Redux Loop’s readme
gives a good insight on Side Effects in the context of Redux.
Reading the aforementioned material will get you a good start for writing
apps with Redux. If you are curious for more, check out following
resources.
-
Functional Programming - Basics
This
post
goes over basic concepts of functional programming while building a
YouTube instant search demo app.
-
Reactive Programming
This
introduction to Reactive Programming
explains Reactive Programming with clarity.
-
Functional Programming - Going beyond
Well written
article
that talks about interesting computer science concepts implemented in
functional languages and how these apply to JavaScript.
-
Monads
Curious about monads? Wikipedia gives a good
overview on monads
and
this article
explains monads in more details with graphics and simple examples.