React Redux 是一个由 Facebook 开发的库,用于将 React 应用程序的状态管理集中化。它结合了 React 和 Redux,使开发者能够以可预测的方式更新应用程序的状态。

为什么使用 React Redux?

  1. 可预测的状态更新:Redux 提供了一个不可变的数据结构,这意味着每次状态更新都会创建一个新的状态对象,这使得状态变化更加可预测。
  2. 组件间通信:通过使用 Redux,组件可以通过订阅全局状态来响应状态的变化,而不是通过 props 或 context。
  3. 易于调试:Redux 的单一状态树(SSOT)使得状态管理更加清晰,也便于调试。

React Redux 的基本概念

  1. Action:Action 是一个描述发生了什么的普通对象。它是 Redux 应用程序中唯一的数据来源。
  2. Reducer:Reducer 是一个函数,它接收当前的 state 和一个 action,然后返回一个新的 state。
  3. Store:Store 是一个对象,它保存了所有组件的状态,并提供了一些方法来访问和修改状态。

示例

以下是一个简单的 React Redux 示例:

// Action
const increment = () => ({
  type: 'INCREMENT'
});

// Reducer
const counterReducer = (state = 0, action) => {
  switch (action.type) {
    case 'INCREMENT':
      return state + 1;
    default:
      return state;
  }
};

// Store
import { createStore } from 'redux';
const store = createStore(counterReducer);

// Component
import React from 'react';
import { connect } from 'react-redux';

const Counter = ({ count, increment }) => (
  <div>
    <p>Count: {count}</p>
    <button onClick={increment}>Increment</button>
  </div>
);

const mapStateToProps = state => ({
  count: state
});

const mapDispatchToProps = dispatch => ({
  increment: () => dispatch(increment())
});

export default connect(mapStateToProps, mapDispatchToProps)(Counter);

扩展阅读

更多关于 React Redux 的信息,您可以阅读以下文章:

React Redux