首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MobX存储责任

MobX存储责任
EN

Stack Overflow用户
提问于 2018-01-02 17:28:06
回答 2查看 468关注 0票数 3

最近,我开始使用MobX进行一个项目。我以前从未使用过MobX,所以我对一件事感到很困惑。

MobX商店的责任是什么?

( 1) MobX @action@computed是否应该返回html/jsx?在官方的10分钟MobX教程https://mobx.js.org/getting-started.html中有一个@computed get report。这只是个例子,对吗?

代码语言:javascript
复制
@computed get report() {
    if (this.todos.length === 0)
        return "<none>";
    return `Next todo: "${this.todos[0].task}". ` +
        `Progress: ${this.completedTodosCount}/${this.todos.length}`;
}

2)在@action中调用API是个好主意吗?是像这样吗?

代码语言:javascript
复制
@action
submitProfileInformation = params => {
  return post("apiendpoint", {
    body: params
  }).then(resp => {
    this.firstName = resp.first_name;
    return "ok";
  });
};

store 来自于redux世界,在我看来,只应该存储和变异值。动作会反应组件,让他们知道某些事情已经改变了,这样他们就会改进型。对吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-03 07:57:39

  1. 它不返回任何html或jsx。它只是一个示例,它只返回字符串。
  2. 只应将then部分标记为操作。

概念是一样的。这取决于您遵循最佳实践或滥用mobx的灵活性和做坏事。我建议你读这篇文章:https://mobx.js.org/best/store.html

票数 2
EN

Stack Overflow用户

发布于 2018-01-19 18:05:02

MobX存储用于存储应用程序状态,包括可观测和不可观测的数据.(类似于Redux Stores,尽管Redux没有可观察到)

MobX操作是任何修改可观察数据的函数。没有规定说你必须采取行动,但这样做是很好的做法。

对于你的问题:Actions would react component let know that something has changed so that they would rerender.的回答是“是”和“不是”。操作是修改可观察数据的函数。您的观察者组件会对可观察到的数据的变化做出反应,而不是对操作函数作出反应。但是由于操作总是修改可观察到的数据,所以调用操作函数应该触发观察者组件的响应。

@计算装饰器简单地创建可观测数据,这些数据是从其他可观测数据(类似于getter函数)中计算出来的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48065295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档