当前位置:首页 > React

react mobx 如何调用计算值

2026-01-25 22:26:45React

调用 MobX 计算值的方法

在 React 中使用 MobX 时,计算值(computed)是通过派生状态自动生成的。以下是调用计算值的具体方法:

使用 @computed 装饰器定义计算值

在 MobX 的类或对象中,通过 @computed 装饰器定义计算属性。计算值会根据依赖的 observable 状态自动缓存并更新。

import { observable, computed } from "mobx";

class Store {
  @observable price = 10;
  @observable quantity = 2;

  @computed get total() {
    return this.price * this.quantity;
  }
}

在 React 组件中访问计算值

通过 observer 包装的 React 组件会自动监听计算值的变化,并在依赖的 observable 状态变化时重新渲染。

import { observer } from "mobx-react-lite";

const Cart = observer(({ store }) => {
  return <div>Total: {store.total}</div>;
});

直接调用计算值

计算值可以像普通属性一样直接访问,无需额外调用方法。MobX 会自动处理缓存和更新逻辑。

const store = new Store();
console.log(store.total); // 输出 20

动态依赖的计算值

计算值会动态跟踪其依赖的 observable 状态。如果依赖变化,计算值会在下次访问时重新计算。

react mobx 如何调用计算值

store.price = 15;
console.log(store.total); // 输出 30(自动重新计算)

注意事项

  • 计算值应保持纯函数特性,避免副作用。
  • 避免在计算值中修改其他 observable 状态,这可能导致无限循环。
  • 计算值的缓存机制依赖于访问时的依赖状态,频繁变化的依赖可能影响性能。

通过以上方式,可以高效地在 React 和 MobX 中定义和使用计算值,实现派生状态的自动化管理。

标签: reactmobx
分享给朋友:

相关文章

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

react如何重新加载

react如何重新加载

重新加载当前页面 在React中重新加载当前页面可以通过window.location.reload()方法实现。该方法会强制浏览器重新加载当前URL,类似于按下F5刷新页面。 const relo…

react如何重写alert

react如何重写alert

重写 React 中的 alert 方法 在 React 中,直接使用原生 alert 会破坏用户体验,通常需要自定义弹窗组件替代。以下是实现方法: 使用自定义弹窗组件 创建可复用的弹窗组件,替代原…

react如何检测窗口

react如何检测窗口

监听窗口大小变化 使用useEffect钩子和resize事件监听窗口尺寸变化。在组件挂载时添加事件监听器,卸载时移除监听器以避免内存泄漏。 import { useState, useEffect…

react如何实现混入

react如何实现混入

在React中实现混入(Mixin)功能可以通过以下几种方式实现,React官方已不推荐使用传统的React.createClass混入方式,但可通过高阶组件或自定义Hook替代。 高阶组件(HOC…

react如何启动6

react如何启动6

安装 Node.js 和 npm/yarn 确保系统中已安装 Node.js(建议版本 16 或更高)和 npm/yarn。可通过以下命令验证版本: node -v npm -v 创建 Reac…