OSS TanbouSign in with GitHub

official bindings that subscribe React components to a Redux store and dispatch state updates

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
23,424
Primary language
TypeScript
License
MIT
Repository last updated
Sep 30, 2026
On this page

Overview

React Redux is the official binding between a Redux store and React UI. Provider exposes the store to a component tree, useSelector subscribes to selected state, and useDispatch sends actions. The older connect API remains available while hooks are the recommended approach for current code.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Expose one Redux store through Provider

Passing a store to Provider makes it available to descendant components through React Redux APIs, creating an explicit binding boundary between the UI tree and state container.

Sources: [1]

Subscribe with useSelector and dispatch actions with useDispatch

The hooks API lets function components select store state, re-render on relevant updates, and dispatch actions. It integrates directly with stores created using Redux Toolkit.

Sources: [1][2]

Keep legacy connect-based components working during migration

Version 9.3.0 adds a deprecation annotation to connect but does not change its behavior or remove it, allowing existing components to remain in place while newer code moves to hooks.

Sources: [3]

Best fit

Fits React applications that standardize access to shared Redux state

It is useful when global or shared state, normalized entities, or asynchronous workflows live in Redux and React components need a consistent subscription and update API.

Sources: [1]

Before adoption

Version 9.3.0 targets React 18 and 19

Package metadata requires React ^18.0 || ^19 and declares Redux ^5.0.0 as an optional peer dependency. Check compatibility before moving legacy React applications to the 9.x line.

Sources: [2]

Hooks are recommended over connect for new code

The 9.3.0 release marks connect as deprecated and encourages migration to useSelector and useDispatch. The annotation does not imply immediate removal, so migrations can be incremental.

Sources: [3]

Official sources

  1. [1]React Redux v9.3.0 README(2026-10-05)
  2. [2]React Redux v9.3.0 package metadata(2026-10-05)
  3. [3]React Redux v9.3.0 release(2026-10-05)
  4. [4]React Redux MIT license(2026-10-05)
Supplemental curator note

For new code, the Redux team recommends Redux Toolkit and hooks. Version 9.3.0 marks connect as deprecated without changing its runtime behavior or announcing removal.

Try it in 3 steps

  1. 1

    Prepare a pinned React Redux environment

    Create an isolated npm project with React Redux 9.3.0 and exact peer dependencies.

    demo=$(mktemp -d "${TMPDIR:-/tmp}/react-redux.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact react-redux@9.3.0 redux@5.0.1 react@19.2.0 react-dom@19.2.0
  2. 2

    Create a minimal Provider and useSelector component

    Build a minimal component that subscribes to store state under Provider without starting a browser.

    printf '%s\n' "import React from 'react'" "import { Provider, useSelector } from 'react-redux'" "import { createStore } from 'redux'" "import { renderToStaticMarkup } from 'react-dom/server'" "const store=createStore((state={count:1})=>state)" "function Counter(){const count=useSelector(s=>s.count);return React.createElement('span',null,'count='+count)}" "console.log(renderToStaticMarkup(React.createElement(Provider,{store},React.createElement(Counter))))" > demo.mjs
  3. 3

    Verify the server-rendered result

    Require the subscribed Redux state to render through React Redux as the expected markup.

    test "$(node demo.mjs)" = '<span>count=1</span>'
Check the official README

Growth

Growth trends · Last 30 days

23,424 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
59
Open PRs
4

Development activity is still being collected.

Built with

Categories and tags

Categories

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • react
  • redux
Stars
23,424
Forks
3,323
Watchers
387
Open issues
6
Contributors
279
Owner type
Organization
Primary language
TypeScript
License
MIT
Repository last updated
Sep 30, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?