(redux / ngrx)您是否建议存储UI相关状态?

时间:2017-06-16 11:41:03

标签: angular redux ngrx

据我了解redux架构的原理,它可以在应用程序状态发生变化时缓解复杂性(业务逻辑?)。

但是,还应该处理演示相关状态的redux方式吗? 例如。边栏当前是否已打开,或者当前是否展开了某个信息块等?

它在ngrx/store example page中以这种方式完成。但由于应用程序逻辑并不依赖于那些表示状态,我无法真正看到它的好处。

3 个答案:

答案 0 :(得分:2)

每个开发人员都应根据其应用程序的要求来决定。在示例应用程序中,sidenav的状态并不像您正确指出的那样真正相关,因此主要用于展示目的。

答案 1 :(得分:1)

我必须这样做有几个原因(这更具体到HTTP请求加载状态,错误状态等):

  • 无法确定http状态,成功或错误。当我们发送,发布或加载请求时,它只是一个单向流。如果请求成功或者出错,它不会给我们。想象一下,一个帖子请求给出了验证错误,我们需要存储此

  • 组件中的代码少,易于编写单元测试,易于重用代码,易于自动化代码。与组件相比,服务总是易于测试。

  • 多个组件中的更新:想象一下,我们正在显示组件中的仪表板和实际数据的摘要。我们需要在仪表板中显示数据正在更新,如果状态存储在组件

  • 中则不可能
  • 将应用程序状态存储在localstorage中:一种情况我必须将UI的状态存储在本地存储中。用户对侧栏的偏好最大化或缩短,文本大小等,即使在这些情况下也必须使用商店。

答案 2 :(得分:1)

我同意这将取决于您的要求,但我们可以考虑一些通用案例,如管理通知(为了一次显示一个通知),用户连接(许多功能可能具有特定的UI取决于)等等。