gpt4 book ai didi

javascript - 关于 Flux 中 Store 的三个问题

转载 作者:行者123 更新时间:2023-12-03 02:28:57 25 4
gpt4 key购买 nike

已关注 the flux concepts我们可以得到下一个我找不到解释的断言。

Every store will receive every action.

为什么?我的建议:由于商店包含一些业务逻辑,我们必须向它提供所有可能的更改和数据,以便商店可以决定如何处理他们自己。

The data in a store must only be mutated by responding to an action.

为什么?我的建议:原因是在不响应操作的情况下违反了单向数据流。

Every time a store's data changes it must emit a "change" event.

为什么? 我无法理解这一点。

最佳答案

Flux 只是管理应用程序数据流的一种方式,因此开发人员需要确保这确实发生。但我会尝试描绘为什么这些概念是 Flux 的一部分。

Every store will receive every action.

如果您的应用程序中只有一个调度程序,则每个商店都会监听通过该调度程序调度的操作。商店是否应该对分派(dispatch)的操作采取行动取决于您,但为了能够对其使用react,商店必须知道

不过,并非所有行动都会导致商店发生变化。但调度程序根本不在乎,因为它不知道有关存储实现的任何信息。它只是告诉所有商店这个 Action 发生了,做你想做的事或者不关心地继续你的生活

The data in a store must only be mutated by responding to an action.

您是对的,使用不同的方法可能会违反单向数据流。以这种方式执行操作可确保应用程序的所有部分根据发生的操作具有正确的状态。

如果不这样做,您就会放弃其中一个通量强度。根据分派(dispatch)的操作更新您的商店,其他商店也会知道该操作发生,从而根据需要使用react。如果您直接更新商店,您最终将不清楚应用程序的哪些部分正在改变商店的状态。

Every time a store's data changes it must emit a "change" event.

人们经常将 Flux 应用程序中的存储描述为事实来源。当商店的数据发生变化时,数据可视化的基础也​​会发生变化。您希望确信,如果我的商店具有特定值,那么我的应用程序就会将其用作数据。

这与这里的第一句话有关。商店不知道监听器是否依赖于它的数据。通过发出更改,它会让所有听众知道嘿,我改变了。确保您拥有我的所有最新更改。如果您不发出更改,监听器最终可能会显示基于旧数据的内容。

<小时/>

所有这些语句都与同一件事相关:如果您的应用程序中发生了某个操作,请不要对应用程序的哪一部分想要了解其详细信息做出任何假设。确保每个人都可以根据需要采取行动。

关于javascript - 关于 Flux 中 Store 的三个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48822607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com