是否有可能不在 Elm 中的每个计时器 Tick 中重新创建整个模型?
Is it possible not to recreate whole model every timer Tick in Elm?
例如,我需要在页面上设置一个计时器。所以我可以每 100 毫秒执行一次操作
type Action = Tick Time
我的 Model
中有字段 time
。模型可能很大,但由于时间场的原因,我需要每 100 毫秒重新创建它和整个视图。我认为这在性能方面不会有效。
是否有其他方法或者我不应该担心这样的事情?
不一定每次都重新创建整个视图。 Elm 使用 Virtual DOM 并进行差异化以仅更改实际 DOM 的最低限度。如果你的视图的大部分实际上每 100 毫秒变化一次,那么这显然会导致问题,但我猜你只是每 100 毫秒进行一次较小的调整,你可能没有什么可担心的。查看您的开发人员工具,了解进程利用率是否激增。
您的模型也不是每 100 毫秒重新创建一次。围绕底层数据结构进行了优化(参见 this related conversation about foldp internals),让您从不变性和纯粹性的角度思考,但在底层进行了优化。
例如,我需要在页面上设置一个计时器。所以我可以每 100 毫秒执行一次操作
type Action = Tick Time
我的 Model
中有字段 time
。模型可能很大,但由于时间场的原因,我需要每 100 毫秒重新创建它和整个视图。我认为这在性能方面不会有效。
是否有其他方法或者我不应该担心这样的事情?
不一定每次都重新创建整个视图。 Elm 使用 Virtual DOM 并进行差异化以仅更改实际 DOM 的最低限度。如果你的视图的大部分实际上每 100 毫秒变化一次,那么这显然会导致问题,但我猜你只是每 100 毫秒进行一次较小的调整,你可能没有什么可担心的。查看您的开发人员工具,了解进程利用率是否激增。
您的模型也不是每 100 毫秒重新创建一次。围绕底层数据结构进行了优化(参见 this related conversation about foldp internals),让您从不变性和纯粹性的角度思考,但在底层进行了优化。