【发布时间】:2019-05-08 12:25:27
【问题描述】:
在我当前的 SPA 中,我将所有数据保存在一个集中式存储(状态)中,其操作会触发状态突变并发布某些 pubSub 事件。
我的 UI 逻辑组织在不同的视图(函数)中,当调用这些视图(函数)时,需要绘制所需的 UI 元素(缓存它们),附加 UI 事件并将视图特定的 UI 逻辑订阅到上述 pubSub 事件。
想法:用户触发 UI 事件,这些事件调用可能会或可能不会更改状态的业务逻辑,UI 会根据这些更改自动更新。
问题:不同的视图可能订阅同一个 store 事件,因此可能会为当时不存在的 UI 执行回调。
问题:我是否应该在视图更改时始终取消订阅视图的所有订阅,或者有更好的方法吗?
不涉及框架/库,主要用于学习目的。
附言。由于我对这些模式还很陌生,我很感谢任何可能有助于改进我的概念的建议。
【问题讨论】:
-
一些代码演示将有助于绕过确切的问题。尝试制作一个 codepen/fiddle
-
觉得没必要,不过我会尽快补充的。
-
是的,当视图更改时,您应该取消订阅视图的所有订阅。这是通常的做法。
标签: javascript store publish-subscribe