【问题标题】:What's the use of computed value in Mobx?Mobx 中计算值有什么用?
【发布时间】:2023-03-15 18:40:01
【问题描述】:

我们开始将 mobx 集成到我们现有的项目中,但我认为目前我还没有完全掌握一些概念。

其中一个是计算值,它们的实际用途是什么?

说我有这家店

const UserStore = observable({
  user: null,

  setUser: action(user => {
    UserStore.user = user;
  }),

  unsetUser: action(() => {
    UserStore.user = null;
  }),

  isAdmin: computed(() => {
    return UserStore.user && UserStore.admin;
  }),

  isAdmin() {
    return this.user && this.user.admin;
  },
});

如您所见,我已经包含了计算的 isAdmin 和“常规” isAdmin。在我的项目中使用时,两者似乎都有效,所以我并没有真正看到计算值的用途是什么?

【问题讨论】:

    标签: reactjs mobx


    【解决方案1】:

    计算的值被缓存。 reference 说:

    如果之前计算中使用的数据都没有改变,则计算属性将不会重新运行

    在你的情况下,一个简单的逻辑操作,这不会给你太多(并且可能会更慢)。但您可以将其用于更昂贵的计算。

    【讨论】:

    • 嗯,有道理。我目前正在努力解决的另一件事是UserStore.isAdmin 作为一个动作,它没有将this 环境绑定到商店,所以如果我想引用this.user,我不得不停止使用箭头函数。有什么解决办法吗?
    猜你喜欢
    • 1970-01-01
    • 2019-06-21
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2022-09-27
    • 1970-01-01
    • 2018-09-16
    相关资源
    最近更新 更多