Redux商店:什么进入数据,什么进入UI?

Redux商店:什么进入数据,什么进入UI?,redux,Redux,通常的做法似乎是分别为数据和ui单独存储,例如 store | +--- data | | | + foo.reducer.ts | + ... | +--- ui | + bar.reducer.ts + ... 我想知道如何从ui中区分数据,似乎并没有明确的区别。例如,我可能想存储侧边栏的状态(打开、浮动、固定等),它清楚地进入ui。还有一些东西,比如应用程序栏标题,看起来也是纯粹的用户界面问题,尽

通常的做法似乎是分别为数据和ui单独存储,例如

  store
  |
  +--- data
  |    |
  |    + foo.reducer.ts
  |    + ...
  |
  +--- ui
       |
       + bar.reducer.ts
       + ...
我想知道如何从ui中区分数据,似乎并没有明确的区别。例如,我可能想存储侧边栏的状态(打开、浮动、固定等),它清楚地进入
ui
。还有一些东西,比如应用程序栏标题,看起来也是纯粹的用户界面问题,尽管它们与视图中显示的数据有一些关系

接下来,我可能会有一个对象列表(例如联系人),可以从中选择我要跟踪选择的对象等。虽然这仍然与UI状态有关,但这些对象来自数据存储,我可能希望更改所选项目(例如,选择一个联系人,弹出一个对话框并编辑该联系人的姓名)


有什么硬性的规则或指导方针可以让我遵循,还是让我自己去做?

我甚至懒得区分这两者。从变量名中可以清楚地看到

Issidebarpen

联系人

selectedContact


isLoading

我甚至懒得区分这两者。从变量名中可以清楚地看到

Issidebarpen

联系人

selectedContact


isLoading

将状态放置在应用商店中,而不是Redux应用程序中的UI中

这是一个主观问题,很难回答。不过,您可以遵循一些指导原则。对于这个话题,经验是最好的老师。话虽如此,最佳做法是:

在Redux存储中保存尽可能多的数据,除非这样做不方便

*应用程序中的组件共享的全局数据属于存储区,或以复杂方式发生变化。由于应用程序中的大多数状态都符合此标准,因此大多数状态都应该属于应用商店

通过遵循本指南并努力保持商店中的所有应用程序状态,您将遵守Redux原则。这一原则认为,

整个应用程序的状态存储在 一个单独的商店

全球重要的数据或可能以复杂方式发生变化的数据应处于状态。如果用户界面的多个部分使用数据,那么数据在全球范围内都很重要

只有一小部分不以复杂方式变化的数据才能进入ui


仅与UI的某个独立部分相关的临时数据,例如UI的某些部分是否被切换,可以进入UI。

将状态放置在应用商店中,而不是在Redux应用程序中放置UI

这是一个主观问题,很难回答。不过,您可以遵循一些指导原则。对于这个话题,经验是最好的老师。话虽如此,最佳做法是:

在Redux存储中保存尽可能多的数据,除非这样做不方便

*应用程序中的组件共享的全局数据属于存储区,或以复杂方式发生变化。由于应用程序中的大多数状态都符合此标准,因此大多数状态都应该属于应用商店

通过遵循本指南并努力保持商店中的所有应用程序状态,您将遵守Redux原则。这一原则认为,

整个应用程序的状态存储在 一个单独的商店

全球重要的数据或可能以复杂方式发生变化的数据应处于状态。如果用户界面的多个部分使用数据,那么数据在全球范围内都很重要

只有一小部分不以复杂方式变化的数据才能进入ui

仅与UI的某个独立部分相关的临时数据(例如是否切换了UI的某个部分)可以进入UI