目录

一个简单的React Redux 使用示例

这里有一个简单的例子,它展示了如何在 React 应用中使用 Redux 来管理状态

首先,我们需要安装 Redux 和 React-Redux

1
npm install redux react-redux

然后,我们创建一个 Redux store 来存储应用的状态。这里我们使用一个简单的计数器作为例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import { createStore } from "redux";

// 定义一个 reducer 函数来处理 action
function counterReducer(state = 0, action) {
  switch (action.type) {
    case "INCREMENT":
      return state + 1;
    case "DECREMENT":
      return state - 1;
    default:
      return state;
  }
}

// 创建 store
const store = createStore(counterReducer);

接下来,我们创建一个 React 组件来展示计数器的值,并提供按钮来增加或减少计数器的值

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import React from "react";
import { useSelector, useDispatch } from "react-redux";

function Counter() {
  // 使用 useSelector hook 来获取 store 中的状态
  const count = useSelector((state) => state);

  // 使用 useDispatch hook 来获取 dispatch 函数
  const dispatch = useDispatch();

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => dispatch({ type: "INCREMENT" })}>Increment</button>
      <button onClick={() => dispatch({ type: "DECREMENT" })}>Decrement</button>
    </div>
  );
}

最后,我们需要使用 <Provider> 组件来包裹整个应用,并将 store 传递给它,以便在应用中的任何地方都可以访问到 store

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import React from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";

ReactDOM.render(
  <Provider store={store}>
    <Counter />
  </Provider>,
  document.getElementById("root")
);

这就是一个简单的例子,展示了如何在 React 应用中使用 Redux 来管理状态。希望这个例子能够帮助你理解如何在实际项目中使用 Redux

上面的例子中,代码可以放在一个单独的文件中,例如 src/App.js。你也可以将代码拆分成多个文件,例如将 Redux 相关的代码放在 src/store.js 中,将 React 组件放在 src/Counter.js 中。这只是一个简单的例子,你可以根据实际项目的需要来组织代码。通常,Redux 相关的代码(例如 reducer、action 和 store)会放在一个单独的目录中,例如 src/redux。React 组件则可以放在 src/components 目录中

如果你将 Redux 相关的代码放在了 src/store.js 文件中,那么你可以在项目的入口文件(例如 src/index.js)中使用 import 语句来引入 store

1
import store from "./store";

然后,你就可以在入口文件中使用 <Provider> 组件来包裹整个应用,并将 store 传递给它,以便在应用中的任何地方都可以访问到 store

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import React from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";
import store from "./store";
import App from "./App";

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById("root")
);

这样,你就可以在项目中使用 Redux 来管理状态了。