Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于通量存储的三个问题_Javascript_Reactjs_Flux_Reactjs Flux - Fatal编程技术网

Javascript 关于通量存储的三个问题

Javascript 关于通量存储的三个问题,javascript,reactjs,flux,reactjs-flux,Javascript,Reactjs,Flux,Reactjs Flux,下面我们可以得到我找不到解释的下一个断言 每个商店都会收到每一个动作 为什么?我的建议是:由于商店包含一些业务逻辑,我们必须向其提供所有可能的更改和数据,以便商店能够自行决定如何处理这些更改和数据 存储区中的数据只能通过响应操作进行变异 为什么?我的建议:原因是在不响应操作的情况下违反了单向数据流 每次存储区的数据更改时,它都必须发出一个“更改”事件 为什么?我不明白这一点。流量只是管理应用程序数据流的一种方式,因此由开发人员来确保这一点。但我将试图描绘出为什么这些概念是通量的一部分 每个商店都

下面我们可以得到我找不到解释的下一个断言

每个商店都会收到每一个动作

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

存储区中的数据只能通过响应操作进行变异

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

每次存储区的数据更改时,它都必须发出一个“更改”事件


为什么?我不明白这一点。

流量只是管理应用程序数据流的一种方式,因此由开发人员来确保这一点。但我将试图描绘出为什么这些概念是通量的一部分

每个商店都会收到每一个动作

如果应用程序中只有一个调度程序,则每个存储都将侦听通过该调度程序调度的操作。由您决定商店是否应该对已发送的操作采取行动,但要能够对其作出反应,商店必须知道这一点

不过,并非所有操作都会导致存储中的更改。但是调度器根本不在乎,因为它不知道有关存储实现的任何信息。它只是告诉所有的商店,这一行动发生了,做你想做的事,或者继续你的生活而不关心

存储区中的数据只能通过响应操作进行变异

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

如果不这样做,你会失去其中一个通量强度。根据已调度的操作更新您的存储,其他存储也会知道该操作已发生,因此,如果他们愿意,会对其作出反应。如果直接更新存储,您将无法清楚地了解应用程序的哪些部分正在改变存储的状态

每次存储区的数据更改时,它都必须发出一个“更改”事件

人们通常将flux应用程序中的存储描述为真相的来源。当存储的数据更改时,数据可视化的基础也会更改。您需要确信,如果我的存储具有特定的值,这就是我的应用程序使用的数据

这和这里的第一句话有关。存储区不知道侦听器是否依赖于它的数据。通过发出一个改变,它会让所有的听众知道,嘿,我改变了。确保你有我所有的最新变化。如果不发出更改,侦听器可能最终显示基于旧数据的内容



所有这些陈述都与同一件事相关:如果应用程序中发生了操作,不要假设应用程序的哪个部分希望了解该操作的详细信息。确保每个人都可以执行该操作,如果他们愿意。

我不确定是否能抓住你。但我的意思是,当我们改变数据而不是响应某个动作时,存在单向冲突。例如:一个二传手。谢谢你的许可。我已经编辑了这篇文章。谢谢你的详细回答。听起来您对flux架构有着深刻的理解。不过,我可以建议您不是flux architecture的作者。因此,我想在这里看到你描述的内容的证明链接,它与事实相似,而不是陈述事实。那么,我在哪里可以找到Facebook对所描述概念的声明呢?哦,如果我误解了你的问题,我很抱歉。事实上,我不确定FaceBook是否提供了关于这些概念的精确描述。我想他们会把很多信息留给用户,因为他们会试图弄清楚这只是一种模式。就我个人而言,在我开始了解为什么之前,我每天都在不断地工作。我上面的答案主要是基于社区中的很多尝试/失败、教程和意见。