代码之家  ›  专栏  ›  技术社区  ›  Mosia Thabo

如何在React中决定信息存储

  •  2
  • Mosia Thabo  · 技术社区  · 4 年前

    我试图搜索与此问题相关的问题,但似乎找不到任何东西。也许措辞不同,但我担心的是:

    我正在创建一个房地产列表应用程序,并计划将React与ASP结合使用。NET核心Web API。

    问题:

    当涉及到反应时,我了解状态管理以及数据如何在组件之间流动,但我似乎不知道状态存储(例如Redux存储)上实际需要什么样的信息,以及每次请求资源时应该加载哪些信息(从web api)。

    例如:

    我可以将用户相关信息保存在Redux存储中,因为只有该用户 修改该信息。多用户环境中会发生什么 当我将该信息存储在Redux存储中时,其他人 更新他们那边的数据库。。。我仍然和老人在一起 信息仍然保存在我的Redux存储中。我会理解的 创建一个监听器(通过 setInterval )每隔几分钟就会运行一次,以寻找变化 这将是理想的,但我不确定这是否是正确的道路/方法 我。

    因此,对于上面的例子,我似乎不知道什么时候把信息放在一个状态中。在我的应用程序中,不同的代理将在一家公司下工作,他们有可能同时更改一些数据。虽然这很容易处理后端,但我似乎不知道这些信息是否需要存储在状态存储中(例如使用Redux)。。。想想脸书主页。你会收到朋友帖子的更新,但这些帖子真的存储在你的州商店里吗?或者每次你点击主页链接时,它们都会被请求?

    问题:

    鉴于上述情况,您能否根据您的理解和经验,在简单的公告中概述何时决定信息值得存储在状态存储(Redux存储)中。当我实际应该请求每个资源请求的信息时(即只有在请求链接时才从api获取信息)。

    非常感谢您抽出时间回答这个问题。

    0 回复  |  直到 4 年前
        1
  •  1
  •   machineghost    4 年前

    让我从简化何时应该使用状态与任何其他选项(例如常规JS变量)开始。只要有可能,你想用别的东西。。。 除了 当该值影响组件呈现的内容时(即它在函数或呈现方法中返回的JSX)。如果你遵循这个简单的规则,它总是会在你应该/不应该使用state时给出答案。

    理解这一点后,你的问题的其余部分实际上与状态无关:如果服务器上的更改影响了组件返回的内容,你应该将它们保持在状态,否则常规变量就足够了。

    至于你使用哪种技术来获取信息,这实际上是一个单独的问题(你可能只需要搜索就能找到答案)。简而言之,您可以发出AJAX请求(例如使用 fetch )定期(例如使用 setInterval ),或者有更高级的“轮询”方法,换句话说,定期检查服务器的信息。

    附言:我应该提到的是,如果你的问题是更新一段数据(从更大的混乱数据中),那么像Redux或Apollo GraphQL框架这样的工具(它构建在客户端数据缓存中,并在你进行GraphQL查询时自动更新缓存……但将GraphQL用于API,甚至只是Redux,是一个主要项目)。