当前位置:首页 > 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 或 yarn list react 修改…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Reac…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

react如何衰减

react如何衰减

React 中的动画衰减效果实现 在 React 中实现衰减效果(如滚动衰减、拖动释放后的惯性滑动)通常需要结合物理动画原理或第三方动画库。以下是几种常见方法: 使用 CSS 动画和 @keyfra…

react 如何遍历

react 如何遍历

遍历数组 在React中遍历数组通常使用map方法,它会返回一个新的数组。map是处理数组并渲染列表元素的首选方法。 const items = ['Apple', 'Banana', 'Cherr…