我应该为整个SPA使用单个Model对象还是为每个组件使用许多小型模型?

时间:2016-05-27 09:32:09

标签: javascript architecture

我正在考虑如何在我的webapp中组织Model。我有两个选择,正如我所看到的那样:

  1. 创建一个全局可用的Model对象,然后在实例化新组件时,它们必须通过方法在Model对象中注册自己,然后在状态发生变化时更新它。其他人会通过一些关键来听取模型的变化。

  2. 为每个组件创建一个模型对象,并通过某个事件调度程序让其他人了解其状态更改。

  3. 在第一种情况下,我觉得在一个地方管理所有状态变化会更容易,有更多标准化的方法,而在后一种情况下,我认为维持系统的一致性将更加困难。 / p>

    我应该根据决定做出哪些因素?

1 个答案:

答案 0 :(得分:0)

我会选择第一个但是添加第二个想法:不是组件经常检查更改的关键,而是可以使组件在注册后需要时只显示组件。您可以使用寄存器本身传递信号/回调。

通过这种方式,您无需创建大量自我更新的模型(这也可能意味着您必须避免循环传播)。除此之外,如果我理解正确,它将违反single source of truth。此外,它在内存和性能方面看起来都更差。