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

时间:2017-04-18 14:07:16

标签: java android design-patterns mvp flux

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

(我正在开发Android应用程序,因此我不会使用reactJS或其他类似的库)

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

1 个答案:

答案 0 :(得分:1)

  

因此,在这种情况下,我们不知道哪一行已被编辑,我们再次在视图中呈现所有数据。这种行为是Flux原则之一吗?

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

  

更新和发送有关更新对象的事件不是更好吗?

您的Android项目有很多辅助库可用于建立不可变数据结构。仅举几例:

相比之下,ReactJS只能通过将当前DOM树与待更新的DOM树进行比较来对“UI-Layer”(DOM)执行更新,因此可以执行增量更新。 您可以在Android视图中模仿此类行为,方法是为您的视图实现类似于ReactJS的shouldComponentUpdate()功能的内容。