位置状态与冗余与上下文.使用哪一个在组件之间传递数据



首先,我知道这个平台是为了解决实际的编程问题而构建的,而不是征求建议。但如果你能消除疑虑,并提出有价值的建议,那将是一个很大的帮助。

因此,我们有多种选项可用于将数据从一个组件传递到另一个组件。例如,我们可以将数据作为道具传递,我们可以设置数据到redux中,另一个组件可以订阅存储获取更新的数据,我们可以在将用户重定向到另一个屏幕时将数据设置到位置状态(而不是反应状态(,用户可以使用useLocation钩子从位置状态获取数据。

所以问题基本上是关于位置状态的,我们应该使用位置状态方法将数据从一个组件传递到另一个组件吗?我知道使用redux和反应方式我们也可以做到这一点,但我发现这种位置状态方法非常简单,因为我们不必调度动作、重置状态等。

欢迎您的建议:(

这实际上取决于您的需求。

大到巨大大小应用的情况

组件的状态在多个位置都是必需的,并且状态的变化非常频繁。在这种情况下,你可以使用像React-Redux, Redux-ToolkitFlux这样的状态管理库,但请记住,随着状态管理库(redux(的易用性,它是你项目的一个依赖项,所以在开始使用任何状态管理库之前,问问自己我真的需要它吗?

Dan Abramovredux的创建者自己有一篇文章你可能不需要redux

中小型项目的情况下。

您必须在支柱钻孔、useContextuseReducer挂钩之间进行选择。如果您有许多组件嵌套在一起,那么更好的方法是使用其中一个hooks

那么什么时候使用道具钻呢?

在许多组件中不需要状态值时,可以使用道具钻孔。

所以问题基本上是关于位置状态的,我们应该使用位置状态方法将数据从一个组件传递到另一个组件吗?

我想我们谈论的是https://reactrouter.com/en/main/hooks/use-location

我不会用它将数据从一个组件传递到另一个组件,除非数据的来源,真相的来源,实际上是URL(或其部分,哈希段,查询参数等(。这个钩子(可能还有它背后的上下文提供程序(并不是为了这个目的,你会滥用它并混淆其他开发人员。

排除了useLocation,只剩下react上下文和其他状态管理库(redux等(。现在的问题是,您应该使用状态管理库吗?或者react上下文是否足够?

我希望我能正确理解你的问题,我的回答对你有帮助。

正如您所说,React中有各种数据传输方法,但它们的使用取决于应用程序的条件和数据类型。在我看来,在这种情况下,数据的类型非常重要,例如,如果你的数据是布尔或字符串,最好定义状态并用props处理,最好使用useLocation(),有时我建议你使用localStorage。我不建议对字符串、布尔值等一维数据使用redux,因为这会给程序带来不必要的负担。但如果你的数据是多维的、大的,比如数组和对象,在第一级,我建议你使用useState()钩子并传递道具,在第二级,使用useContext()钩子,在第三级,使用数据存储,比如Redux。我希望我能帮助你

相关内容

  • 没有找到相关文章

最新更新