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

How stores objects update view in flux pattern

假设我们有一个聊天应用程序并且对话页面已经打开。如果其他用户编辑的消息之一或消息的状态从已发送更改为已发送,Action 会使用新的消息元数据更新 Store。例如,在这些操作之后,我们有一个 messagesState 或 messagesText 列表,或者只是在 Store 中修改了数据的消息。因此,在这种情况下,我们不知道哪一行已被编辑,我们会再次呈现所有数据。这种行为是 Flux 原则之一吗?仅更新和发送有关更新对象的事件不是更好吗?

(我开发了 Android 应用程序,所以我不使用 reactJS 或其他类似的库)

另外我认为如果我们将 MVP 与 Flux 混合使用会很好!因为如果一个视图想要改变自己,我们必须将逻辑放在 view.for 示例视图中,直接获取存储数据并检查它属于哪个元素!我认为演示文稿布局适合这种情况。有人试过吗?

So in this scenario we don't know which row has been edited and we render all the data in view again. Is this behavior one of Flux principles?

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

Isn't better to update and send event about updated object only?

您的 Android 项目有很多帮助程序库可以建立不可变的数据结构。仅举几例:

相比之下,ReactJS 只能对 "UI-Layer"、DOM 执行更新,方法是将当前的 DOM 树与待更新的 [=30] 树进行比较=] 树,因此可以执行增量更新。 您可以在 Android 视图中模仿这种行为,方法是为您的视图实现类似于 ReactJS 的 shouldComponentUpdate() 函数的东西。