React Redux 是一个用于构建可预测应用状态的库。它结合了 React 和 Redux,允许开发者使用 React 组件和 Redux 状态管理来创建高效、可维护的应用程序。

安装 Redux 和 React-Redux

首先,你需要安装 Redux 和 React-Redux。你可以使用 npm 或 yarn 来安装:

npm install redux react-redux

yarn add redux react-redux

创建 Store

Redux 的核心是 Store。Store 是一个包含所有应用状态的容器,它允许你通过 dispatch 来更新状态。

import { createStore } from 'redux';

const initialState = {
  count: 0
};

function reducer(state = initialState, action) {
  switch (action.type) {
    case 'INCREMENT':
      return { ...state, count: state.count + 1 };
    case 'DECREMENT':
      return { ...state, count: state.count - 1 };
    default:
      return state;
  }
}

const store = createStore(reducer);

使用 React-Redux

React-Redux 提供了两个主要的 API:Providerconnect

  • Provider:用于将 Redux Store 提供给 React 组件树。
  • connect:用于将 Store 的状态和操作映射到 React 组件的 props 和 methods。
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider, connect } from 'react-redux';
import { createStore } from 'redux';

// 创建 Store
const store = createStore(reducer);

// 创建一个 React 组件
class Counter extends React.Component {
  render() {
    return (
      <div>
        <p>Count: {this.props.count}</p>
        <button onClick={this.props.increment}>Increment</button>
        <button onClick={this.props.decrement}>Decrement</button>
      </div>
    );
  }
}

// 使用 connect 将 Store 的状态和操作映射到组件的 props 和 methods
const mapStateToProps = state => ({
  count: state.count
});

const mapDispatchToProps = dispatch => ({
  increment: () => dispatch({ type: 'INCREMENT' }),
  decrement: () => dispatch({ type: 'DECREMENT' })
});

const ConnectedCounter = connect(mapStateToProps, mapDispatchToProps)(Counter);

// 使用 Provider 包裹你的根组件,并将 Store 传递给它
ReactDOM.render(
  <Provider store={store}>
    <ConnectedCounter />
  </Provider>,
  document.getElementById('root')
);

扩展阅读

更多关于 React Redux 的内容,可以参考我们的 React Redux 教程

<center><img src="https://cloud-image.ullrai.com/q/react_redux/" alt="react_redux"/></center>