Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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 使用Redux防止重复的最佳实践是什么?_Javascript_Redux - Fatal编程技术网

Javascript 使用Redux防止重复的最佳实践是什么?

Javascript 使用Redux防止重复的最佳实践是什么?,javascript,redux,Javascript,Redux,如果您正在使用Redux,并且您有一个处于状态的数组,但是您希望防止重复项进入该数组,那么您是否应该防止在reducer中的数组中添加重复项或这是应该在action creator中执行的操作?通常,Redux操作创建者应避免了解任何有关应用程序状态的信息: 通常,在action creators中访问状态是一种反模式,您应该尽可能避免这种情况 Redux的最佳实践要求动作创建者只创建一个动作来表示发生了什么,而不考虑这将如何影响状态。换句话说,一个动作意味着“发生了什么事”,而不是“状态需要改

如果您正在使用Redux,并且您有一个处于状态的数组,但是您希望防止重复项进入该数组,那么您是否应该防止在reducer中的数组中添加重复项这是应该在action creator中执行的操作?

通常,Redux操作创建者应避免了解任何有关应用程序状态的信息:

通常,在action creators中访问状态是一种反模式,您应该尽可能避免这种情况

Redux的最佳实践要求动作创建者只创建一个动作来表示发生了什么,而不考虑这将如何影响状态。换句话说,一个动作意味着“发生了什么事”,而不是“状态需要改变”;如果一个动作不相关,完全忽略它是可以的

另一方面,减速器是前一个状态和动作的纯函数,因此它完全可以判断动作是否需要状态突变


因此,总而言之,减缩器可能是最佳选择,因此您的动作创建者可以保持“瘦”。

尽管这取决于您希望在动作创建者中加入多少逻辑,但我认为减缩器是明显的选择(因为动作仍然发生,您只是选择不因此而改变状态)。也许一个或一个ImmutableJS集会有用?我只是想知道什么是最佳实践。我想你是对的。