如何以通量模式存储对象更新视图



想象我们有一个聊天应用程序,并且对话页面已打开。如果另一个用户编辑的消息之一或消息的状态从已发送到交付的状态更改为Action,则更新带有新消息元数据的Store。例如,在这些操作之后,我们获得了Messagesstate或Messagestext的列表,或者简单地使用Store中使用修改的数据的消息。因此,在这种情况下,我们不知道已经编辑了哪一行,我们将再次渲染所有数据。这种行为是通量原则之一吗?更新和发送有关更新对象的事件不是更好吗?

(我开发了Android应用程序,因此我不使用ReactJ或其他库(

我还认为,如果我们将MVP与Flux混合在一起,这是很好的!因为如果一个视图想更改自身,我们必须将逻辑放置在视图中。示例视图直接获取存储数据并检查其属于哪个元素!我认为演示布局对这种情况有好处。有人尝试过吗?

因此,在这种情况下,我们不知道已经编辑了哪一行,我们再次渲染所有数据。这种行为是通量原理之一吗?

是的,是!磁通原理之一是数据的不变性,以避免对父数据结构中的每个对象进行增量更改处理。这也立即回答了您的第二个问题:

仅更新和发送有关更新对象的事件的更好?

您的Android项目有大量的助手库来建立不变的数据架构。仅举几例:

  • https://github.com/immutables/immutables
  • https://github.com/konmik/solid

相比之下,ReactJS能够通过将当前DOM树与已建立的DOM树进行比较,可以在" UI-Layer"(DOM(上执行更新,因此可以执行增量更新。您可以通过对您的视图的reactjs的shorecomponentupdate((函数进行类似物来模仿Android视图中的这种行为。

最新更新