当前位置:首页 > React

React如何创建store

2026-02-12 03:35:33React

React 中创建 Store 的方法

在 React 中创建 store 通常涉及使用状态管理库,如 Redux、MobX 或 Context API。以下是几种常见方法:

使用 Redux 创建 Store

安装 Redux 和相关依赖:

npm install redux react-redux

创建 store 文件(如 store.js):

import { createStore } from 'redux';
import rootReducer from './reducers';

const store = createStore(rootReducer);

export default store;

定义 reducer(如 reducers/index.js):

React如何创建store

const initialState = {
  count: 0
};

const rootReducer = (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;
  }
};

export default rootReducer;

在 React 应用中提供 store:

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import App from './App';
import store from './store';

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

使用 Context API 创建 Store

创建 context 和 provider(如 StoreContext.js):

import React, { createContext, useState } from 'react';

export const StoreContext = createContext();

export const StoreProvider = ({ children }) => {
  const [count, setCount] = useState(0);

  const increment = () => setCount(count + 1);
  const decrement = () => setCount(count - 1);

  return (
    <StoreContext.Provider value={{ count, increment, decrement }}>
      {children}
    </StoreContext.Provider>
  );
};

在应用中使用 provider:

React如何创建store

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { StoreProvider } from './StoreContext';

ReactDOM.render(
  <StoreProvider>
    <App />
  </StoreProvider>,
  document.getElementById('root')
);

使用 MobX 创建 Store

安装 MobX 和相关依赖:

npm install mobx mobx-react-lite

创建 store 文件(如 counterStore.js):

import { makeAutoObservable } from 'mobx';

class CounterStore {
  count = 0;

  constructor() {
    makeAutoObservable(this);
  }

  increment() {
    this.count++;
  }

  decrement() {
    this.count--;
  }
}

export default new CounterStore();

在 React 组件中使用:

import React from 'react';
import { observer } from 'mobx-react-lite';
import counterStore from './counterStore';

const App = observer(() => {
  return (
    <div>
      <button onClick={() => counterStore.decrement()}>-</button>
      <span>{counterStore.count}</span>
      <button onClick={() => counterStore.increment()}>+</button>
    </div>
  );
});

export default App;

选择合适的方法

  • Redux:适合大型应用,需要严格的单向数据流和中间件支持。
  • Context API:适合中小型应用,无需额外依赖。
  • MobX:适合需要响应式和更灵活状态管理的应用。

每种方法都有其适用场景,根据项目需求选择最合适的方案。

标签: Reactstore
分享给朋友:

相关文章

React的isMounted如何使用

React的isMounted如何使用

isMounted的使用方法 React的isMounted方法曾用于检查组件是否已挂载到DOM中,但该方法已被弃用。官方推荐使用其他方式替代。 替代方案 使用useRef和useEffect组合实…

react如何监听store里的变化

react如何监听store里的变化

监听 Redux Store 变化的几种方法 使用 useSelector Hook(函数组件) 在函数组件中,通过 react-redux 提供的 useSelector Hook 可以订阅 Sto…

React的热更新如何做

React的热更新如何做

React热更新配置方法 使用Webpack的Hot Module Replacement (HMR)功能实现React组件热更新。确保项目已安装webpack-dev-server和react-ho…

步骤条React实现

步骤条React实现

React 实现步骤条的方法 使用 React 实现步骤条可以通过多种方式完成,以下是几种常见的方法: 使用状态管理控制步骤 通过 React 的 useState 钩子管理当前步骤的状态,动态渲染…

React如何获取li

React如何获取li

获取 DOM 中的 <li> 元素 在 React 中获取 <li> 元素可以通过以下几种方式实现: 使用 ref 获取单个 <li> 元素 impor…

React如何定时刷新

React如何定时刷新

React 定时刷新的实现方法 在React中实现定时刷新可以通过多种方式完成,以下是几种常见的方法: 使用 setInterval 和 useEffect 利用React的useEffec…