是否可以不在Elm中的每个计时器滴答声中重新创建整个模型?

是否可以不在Elm中的每个计时器滴答声中重新创建整个模型?,elm,Elm,例如,我需要在页面上设置计时器。所以我可以每100毫秒做一次动作 type Action = Tick Time 我的模型中有字段时间。模型可能很大,但由于时间场的原因,我需要每100毫秒重新创建一次模型和整个视图。我认为,从绩效角度来看,这将是无效的 还有其他方法吗?或者我不应该担心这种事情吗?不一定每次都会重新创建整个视图。Elm使用了一个和diff来只更改实际DOM的最小值。如果你的视图的很大一部分实际上每100毫秒就改变一次,那么这显然会引起问题,但我猜你只是每100毫秒做一次较小的调

例如,我需要在页面上设置计时器。所以我可以每100毫秒做一次动作

type Action = Tick Time
我的
模型中有字段
时间
。模型可能很大,但由于时间场的原因,我需要每100毫秒重新创建一次模型和整个视图。我认为,从绩效角度来看,这将是无效的


还有其他方法吗?或者我不应该担心这种事情吗?

不一定每次都会重新创建整个视图。Elm使用了一个和diff来只更改实际DOM的最小值。如果你的视图的很大一部分实际上每100毫秒就改变一次,那么这显然会引起问题,但我猜你只是每100毫秒做一次较小的调整,你可能没什么好担心的。看看您的开发人员工具,看看流程利用率是否在上升


您的模型也不是每100毫秒重新创建一次。底层数据结构有一些优化(请参阅),可以让您从不变性和纯粹性的角度来考虑,但这些优化都是在幕后进行的。

但是,我想虚拟dom每一次都会被重新创建?关于model,如果我使用{model | time,难道没有一种方法可以通过使用lazy函数来优化diff:它缓存一大块html的结果,并且给定参数,如果它们相同,由于引用透明性,它不会重新呈现吗?