当前位置:首页 > 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处理副作用:

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);
});

mobx如何与react结合

标签: mobxreact
分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 React 确保 Node.js 安装在本地环境中。通过以下命令创建新的 React 项目: npx create-react-app my-app 进入项目目录并启动开发服务器:…

react实现vue

react实现vue

React 实现 Vue 功能 React 和 Vue 是两种不同的前端框架,但可以通过一些方法在 React 中实现 Vue 的特性。以下是几种常见 Vue 功能在 React 中的实现方式:…

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

react如何取消渲染

react如何取消渲染

取消渲染的方法 在React中,取消渲染通常指的是在某些条件下阻止组件渲染或中断正在进行的渲染过程。以下是几种常见的方法: 条件渲染 通过条件判断决定是否渲染组件或部分内容。可以使用if语句或三元…

电脑如何安装react

电脑如何安装react

安装 Node.js 和 npm React 依赖于 Node.js 和 npm(Node Package Manager)。从 Node.js 官网下载并安装最新稳定版本,安装完成后会自动包含 np…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…