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

Javascript 我应该为整个SPA使用单个模型对象,还是为每个组件使用多个小模型?,javascript,architecture,Javascript,Architecture,我正在考虑如何在我的webapp中组织模型。在我看来,我有两个选择: 创建一个全局可用的模型对象,然后在实例化新组件时,它们必须通过方法在模型对象中注册自己,然后在状态更改时更新它。其他人则会通过一些键来听取模型的更改 为每个组件创建一个模型对象,并通过一些事件调度器让其他人知道它们的状态更改 在第一种情况下,我觉得在一个地方管理所有的状态变化会更容易,有更标准化的方法,而在后一种情况下,我认为在整个系统中保持一致性会更难 我应该根据哪些因素做出决定?我同意第一个,但增加了第二个想法:不需要组件

我正在考虑如何在我的webapp中组织模型。在我看来,我有两个选择:

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

  • 为每个组件创建一个模型对象,并通过一些事件调度器让其他人知道它们的状态更改

  • 在第一种情况下,我觉得在一个地方管理所有的状态变化会更容易,有更标准化的方法,而在后一种情况下,我认为在整个系统中保持一致性会更难


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

    我同意第一个,但增加了第二个想法:不需要组件不断检查键的变化,您可以在组件注册后,在需要时发出唯一的模型信号。您可以通过寄存器本身传递信号/回调


    这样,您就不需要创建一个更新自身的模型大军(这也可能意味着您必须避免循环传播)。除此之外,如果我理解正确,这将违反法律。此外,从内存和性能方面看,它看起来更差。

    我同意第一种方法,但增加了第二种方法的想法:不必让组件不断检查按键的变化,您可以在组件注册后,在需要时让唯一的模型向组件发送信号。您可以通过寄存器本身传递信号/回调

    这样,您就不需要创建一个更新自身的模型大军(这也可能意味着您必须避免循环传播)。除此之外,如果我理解正确,这将违反法律。而且它在内存和性能方面看起来都很糟糕