在重新框架拦截器、协同效应/效果概念的背景下,我想知道对于由计时器/循环事件驱动的事件,推荐的架构方法是什么。
在 github 示例之一中,通过在命名空间级别(本质上是全局的)定义顶级 JavaScript 间隔来制作时钟。
在 React 中,您可以使用组件生命周期挂钩来组织这种类型的事情。组织这些类型的事件驱动程序(计时器和请求动画帧游戏循环)的推荐方法是什么?
我找到的最接近官方答案的是:https://github.com/Day8/re-frame/blob/master/docs/FAQs/PollADatabaseEvery60.md
基本上,它使用
(js/setInterval #(re-frame/dispatch event) frequency)
在计时器上调度事件。如果将其包装在更新原子的 swap!
中,您可以在事件处理程序之外跟踪它(这样您就可以取消它)。
该链接包括对建立用于清理孤立计时器的基础设施(例如由于 Figwheel 热重载)的一些细微差别的讨论。在启动过程中使用
dispatch-sync
调用初始化程序。