从redux文档中解释这背后的逻辑

时间:2016-02-19 15:36:01

标签: reactjs redux

我想知道为什么<select ng-model="order.fruitId" ng-options="item.id as item.name for item in data.fruits"> <option value="">-- Select One --</option> </select> 在'简单'的反应redux todo应用程序中被传递然后我遇到了这个。

  

在每个动作中传递尽可能少的数据是个好主意。   例如,最好传递索引而不是整个todo对象。

来自http://redux.js.org/docs/basics/Actions.html

对我而言,这是一个非常令人费解的陈述。作者是否说传递索引比传递对象引用更可取?我一直想知道为什么在这个例子中这样做了,这里暗示它是因为“在每个动作中传递尽可能少的数据是个好主意”。这对我来说没什么意义。当然,传递索引与传递对象引用的数据方式相同。好像无论如何重要。

1 个答案:

答案 0 :(得分:3)

首先,我们必须承认,Flux的主要目的通常是使JS代码库简洁明了。这不是围绕优化性能的框架。它是关于使代码清洁,清晰,可靠和可扩展。实现这一目标的最简单方法是在您的关注点之间进行非常清晰的分离。

本部分文档的要点并不是说“如果传递额外信息,您的数据会发生不好的事情”。它试图说“为了充分利用Flux架构,每个部分都应该有最少的必要信息”。

为什么呢?同样的原因是调试15行文件比调试1500行文件更容易。两者都是可行的,但是如果您可以在关注点之间进行清晰明确的分离,那么以后的调试过程就会变得更加容易。

即:

  

Complete_Todo方法没有像预期的那样工作。我们是否传递了正确的ID?”

VS

  

Complete_Todo方法没有像预期的那样工作.Todo对象是否正确传递?我知道它看起来像我们只需要id,但也许我们应该检查它的其他值以防万一我们忽略了代码中需要它们的东西......“