在需要恢复应用程序状态时需要使用哪种模式?

时间:2018-10-23 09:53:27

标签: typescript oop design-patterns

我有一些观察者方法可以从服务器返回数据。此结果将应用于过滤器(带有数据输入的HTML表单)。这些过滤器相互关联。这意味着当我选择一个过滤器时会加载另一个过滤器。

简要说明是:

Load data from server -> 
Assign response to variable and assign to filter -> 
Choose value from filter -> 
Fill others filters -> 
Load content on the page based selected filter

用户可以离开此页面,然后返回。

如何为页面的用户声明提供选定的过滤器和内容,避免重复请求服务器?

1 个答案:

答案 0 :(得分:0)

您的组件应接受能够重新创建状态的@Input类对象。您应该更新此对象,并将其存储在类似于服务的类中,以在页面内外移动中保持其生命周期。您要解决的概念类似于ngrx store正在解决的概念。

存储机制并不难,在这个对象中所要表现的很难。如果您不想依赖缓存的数据,则应存储您描述的流(即过滤器依赖性),以便使用新鲜数据重新初始化组件。如果您不关心数据的即时更新,则不需要存储数据(以及用于保持视图一致性的过滤器值),但是不会进行API调用。我认为所有的魔力都将被推入onInit`。

编辑

如评论中所述,请考虑GoF的memento设计模式作为您设计的参考

相关问题