当前位置:首页 > React

mobx如何与react结合

2026-01-24 20:55:28React

mobx与react结合的方法

安装依赖包 确保项目已安装mobxmobx-react-lite(函数组件)或mobx-react(类组件)。通过npm或yarn安装:

npm install mobx mobx-react-lite
# 或
yarn add mobx mobx-react-lite

创建可观察状态 使用makeObservablemakeAutoObservable定义Store类,将状态标记为可观察:

import { makeAutoObservable } from "mobx";

class CounterStore {
  count = 0;

  constructor() {
    makeAutoObservable(this);
  }

  increment() {
    this.count++;
  }
}

export const counterStore = new CounterStore();

在组件中使用状态 通过observer包裹组件,使组件能响应状态变化。函数组件示例:

import { observer } from "mobx-react-lite";
import { counterStore } from "./CounterStore";

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

类组件用法 若使用类组件,需通过injectobserver结合(需安装mobx-react):

import { inject, observer } from "mobx-react";

@inject("counterStore")
@observer
class CounterClass extends React.Component {
  render() {
    const { counterStore } = this.props;
    return (
      <div>
        <span>{counterStore.count}</span>
        <button onClick={() => counterStore.increment()}>+</button>
      </div>
    );
  }
}

Provider注入全局Store 通过Provider传递Store到组件树,避免直接导入:

import { Provider } from "mobx-react";
import { counterStore } from "./CounterStore";

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

响应式计算与副作用 使用computed定义衍生状态,autorunreaction处理副作用:

mobx如何与react结合

import { computed, autorun } from "mobx";

class UserStore {
  firstName = "John";
  lastName = "Doe";

  constructor() {
    makeAutoObservable(this);
  }

  get fullName() {
    return `${this.firstName} ${this.lastName}`;
  }
}

const userStore = new UserStore();
autorun(() => {
  console.log(userStore.fullName);
});

标签: mobxreact
分享给朋友:

相关文章

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yarn…

react 如何运行

react 如何运行

运行 React 项目的步骤 安装 Node.js 确保系统已安装 Node.js(建议版本 16+),可通过官网下载并安装。安装后验证版本: node -v npm -v 创建 React 项目…

react如何注销

react如何注销

React 组件的注销方法 在 React 中,组件的注销通常指的是在组件卸载时执行清理操作,例如取消订阅、清除定时器或释放资源。以下是几种常见的方法: 使用 useEffect 钩子的清理函数…

react如何启动

react如何启动

启动 React 项目的步骤 确保已安装 Node.js React 需要 Node.js 环境运行,建议安装最新稳定版(LTS)。可通过以下命令检查是否已安装: node -v npm -v…

odyssey react 如何

odyssey react 如何

Odyssey React 是耐克推出的一款跑鞋系列,以其轻量化设计和React泡沫缓震技术著称。以下是关于该系列鞋款的主要特点和使用建议: 核心特点 React泡沫中底提供出色的能量回馈和缓震效果…

react路由如何配置

react路由如何配置

React 路由配置方法 安装 React Router 使用 npm 或 yarn 安装 React Router 的 DOM 版本: npm install react-router-dom #…