Ngrx商店 - 是否应该存储所有UI更改?

Jar*_*rek 1 javascript ngrx angular-material2 angular

我正在使用Angular 2和Ngrx以及Angular Material.是否所有UI更改(如下拉列表或对话框)应该存储在哪里?

例如:

<button md-button [mdMenuTriggerFor]="menu">Menu</button>
<md-menu #menu="mdMenu">
  <button md-menu-item>Item 1</button>
  <button md-menu-item>Item 2</button>
</md-menu>
Run Code Online (Sandbox Code Playgroud)

我应该支持商店下拉吗?

下一个例子:

<md-sidenav-container class="example-container">
  <md-sidenav #sidenav class="example-sidenav">
    Jolly good!
  </md-sidenav>

  <div class="example-sidenav-content">
    <button type="button" md-button (click)="sidenav.open()">
      Open sidenav
    </button>
  </div>

</md-sidenav-container>
Run Code Online (Sandbox Code Playgroud)

我可以使用open方法吗?也许我应该创建组件,将partnav包装在仅在输入上运行的组件中Input() open;

Mee*_*ker 6

对我来说,一般有3个问题我问.

  • UI更改是否与组件隔离,不会影响其他组件?

  • 在视图返回之后,是否需要保留UI更改?

  • 出于调试目的,您是否想要跟踪此状态(可能是为了重新创建最终用户的视图?)

如果您对这3个问题的回答为"否",那么您可能不需要将该组件的状态存储在商店中.

通过不将商店连接起来,您可以使其更加模块化,更易于测试和重复使用.