You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MobX中useLocalObservable是否会将getter转为computed值?

useLocalObservable 中的 getter 是否会被转为 MobX computed 值?

我注意到useLocalObservable会像makeAutoObservable处理类一样,自动将函数转换为MobX的actions。那么它是否也会将getter转换为MobX的computed值?

代码示例:

import { useLocalObservable } from 'mobx-react-lite';

const state = useLocalObservable(() => ({
  isShowDragMeTooltip: false,

  showDragMeTooltip() {
    this.isShowDragMeTooltip = true;
  },

  hideDragMeTooltip() {
    this.isShowDragMeTooltip = false;
  },

  get dragMeTooltipStyles() {
    return {
      display: this.isShowDragMeTooltip ? 'block' : 'none',
    };
  }
}));

回答

是的,useLocalObservable内部基于makeAutoObservable实现,所以你代码里的dragMeTooltipStyles会被自动识别为computed值,具备MobX computed的缓存特性:只有当它依赖的isShowDragMeTooltip发生变化时,才会重新计算;重复调用时如果依赖没变化,会直接返回缓存结果,不会每次都执行函数体。

内容的提问来源于stack exchange,提问作者Evan Summers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:20:48