首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NGXS在从API获取之前会检查存储吗?

NGXS在从API获取之前会检查存储吗?
EN

Stack Overflow用户
提问于 2021-11-16 07:53:27
回答 2查看 172关注 0票数 0

所以,我第一次尝试使用NGXS,我注意到当我在Angular的ngOnInit()函数中添加以下代码时,它总是获取接口:

代码语言:javascript
运行
复制
this.store.dispatch(new FooActions.GetAll());

或者它不是功能的一部分?我是否应该在每次发送从服务器获取数据的操作时手动执行检查?

EN

回答 2

Stack Overflow用户

发布于 2021-11-16 08:01:10

因此,这里有两件事要做,以减少API调用。当您执行API调用时,浏览器会获取数据,如果启用了缓存,它会将数据保存在缓存中。

现在,当您使用状态管理时,您需要在每次刷新或重新加载应用程序时将API数据存储到存储中,因为它不是数据的持久存储。

这意味着,在调用API之前,您应该检查存储中是否有数据。如果您有数据,只需从存储中获取数据并遵循相同的应用程序流,否则点击API并获取最新数据并将其保存在存储中。

票数 1
EN

Stack Overflow用户

发布于 2021-11-29 19:05:27

您可以使用selectSnapshot

代码语言:javascript
运行
复制
selectSnapshot(StateName.SelectorName);

示例

代码语言:javascript
运行
复制
const dataInsdeStore = this.store.selectSnapshot(StateName.SelectorName);

if (!dataInsdeStore) {

   this.store.dispatch(new FooActions.GetAll());

}

  1. 如果dataInsdeStore返回数据,则商店已经有数据,不需要调用

接口

  1. 如果dataInsdeStore返回null或empty,则需要调用接口,因为状态为空

selectSnapshot的资源

ngxs Docs

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

https://stackoverflow.com/questions/69985510

复制
相关文章

相似问题

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