Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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
Reactjs 将React钩子和redux一起用于React功能组件是否不好?_Reactjs_Redux_React Hooks_React Functional Component - Fatal编程技术网

Reactjs 将React钩子和redux一起用于React功能组件是否不好?

Reactjs 将React钩子和redux一起用于React功能组件是否不好?,reactjs,redux,react-hooks,react-functional-component,Reactjs,Redux,React Hooks,React Functional Component,我对局部变量使用react钩子,比如 const[something,setSomthing]=useState(“”) 和redux,用于使用store和Provider存储通过整个组件传递的变量 但有人告诉我不应该同时使用React钩子和Redux。 有人能解释一下为什么,如果我不应该,我应该如何在功能组件中存储局部变量吗?Redux和局部状态总是一起使用的。钩子用于重现本地状态,您可以将其存储在基于类的组件中,但可以使用功能组件。 正如您在问题中所说,状态挂钩用于保持组件的本地状态,而re

我对局部变量使用react钩子,比如 const[something,setSomthing]=useState(“”) 和redux,用于使用store和Provider存储通过整个组件传递的变量

但有人告诉我不应该同时使用React钩子和Redux。
有人能解释一下为什么,如果我不应该,我应该如何在功能组件中存储局部变量吗?

Redux和局部状态总是一起使用的。钩子用于重现本地状态,您可以将其存储在基于类的组件中,但可以使用功能组件。 正如您在问题中所说,状态挂钩用于保持组件的本地状态,而redux用于保持应用程序的全局状态。 它们并非互不相容。假设您有一个保存计数器的组件,但该计数器仅由该组件在本地使用。对于这种情况,您将使用挂钩来保持计数器的状态。 现在让我们假设应用程序的要求发生了变化,现在该计数器(该特定计数器,具有相同的值,而不是不同的值)需要由应用程序中的其他组件使用。在这种情况下,计数器必须移动到redux全局状态。
我希望这能回答你的问题。

Redux和local state一直被一起使用。钩子用于重现本地状态,您可以将其存储在基于类的组件中,但可以使用功能组件。 正如您在问题中所说,状态挂钩用于保持组件的本地状态,而redux用于保持应用程序的全局状态。 它们并非互不相容。假设您有一个保存计数器的组件,但该计数器仅由该组件在本地使用。对于这种情况,您将使用挂钩来保持计数器的状态。 现在让我们假设应用程序的要求发生了变化,现在该计数器(该特定计数器,具有相同的值,而不是不同的值)需要由应用程序中的其他组件使用。在这种情况下,计数器必须移动到redux全局状态。
我希望这能回答您的问题。

如果全局不需要状态,则可以使用钩子将其本地存储在函数中,而不使用Redux


如果需要,也可以在全局状态的功能组件中使用Redux。但是,对于许多用例,您可以使用React提供的with hook。

如果全局不需要状态,则可以使用hook将其本地存储在函数中,而不使用Redux


如果需要,也可以在全局状态的功能组件中使用Redux。但是,对于许多用例,您可以使用React提供的with钩子。

无需担心redux和React钩子,因为它们的用例完全取决于您的数据,如果您不想在导航到页面后看到加载的数据,因此,我建议您在不使用任何数据存储管理器(如Mobx或Redux)的情况下保留代码,但如果您希望在某个位置存储数据并在页面之间共享数据,则需要在项目中实现其中一个数据管理器。但React钩子和redux完全没有冲突

但是,如果您对React钩子感到满意,它可以帮助您通过React上下文API存储数据,比如Redux

在Typescript中使用React上下文API的演示:

https://github.com/ali-master/react-typescript-hooks-sample

无需担心redux和react挂钩,因为它们的用例完全取决于您的数据,如果您不想在导航到页面后看到加载的数据,因此,我建议您在不使用任何数据存储管理器(如Mobx或Redux)的情况下保留代码,但如果您希望在某个位置存储数据并在页面之间共享数据,则需要在项目中实现其中一个数据管理器。但React钩子和redux完全没有冲突

但是,如果您对React钩子感到满意,它可以帮助您通过React上下文API存储数据,比如Redux

在Typescript中使用React上下文API的演示:

https://github.com/ali-master/react-typescript-hooks-sample

只要与功能组件相关,就可以在功能组件内存储状态,例如处理表单数据。但当您希望该状态传播到多个组件时,您应该使用redux,因为redux处理全局状态。只要功能组件中的状态与该组件相关,就可以将其存储在功能组件中,例如处理表单数据。但是,当您希望该状态传播到多个组件时,应该使用redux,因为redux处理全局状态。