如果一个应用程序已经使用了redux这样的工具,那么context API是否有任何用例?

qf9go6mv  于 2023-02-12  发布在  其他
关注(0)|答案(2)|浏览(91)

我不知道如果一个应用程序已经使用了像Redux这样的工具,那么使用Context API的任何用例。看起来Context API只会在性能不重要并且开发人员不了解Redux的快速和肮脏的情况下有用。这看起来像是一个准确的Assert吗?也就是说,如果一个应用程序已经实现了Redux,那么就没有其他用例可以证明Context API的使用是合理的?

o0lyfsai

o0lyfsai1#

  • "如果应用程序已经有redux,是否有使用上下文API的用例?"*

是的,有。Context API是一种用于在React组件之间共享数据(包括状态)的机制。Redux是一种状态管理工具。
您可以让Redux(用于管理状态)和Context在组件之间共享数据(不同于Redux状态)。
这是一个同时使用Redux和Context API的真实开源React应用程序。
推荐阅读:为什么React Context不是"状态管理"工具(以及为什么它不能取代Redux)

mctunoxg

mctunoxg2#

API允许你从任何组件(树中的任何地方)向下传递一个值给它的所有后代。Redux管理一个全局状态。这是完全不同的。
下面是一个具体的示例,即使您使用的是Redux,也需要使用Context API:假设您正在设计一个类似于时间轴的页面,其中包含许多Post(每个帖子都有一个id,允许您在Redux商店中查找),并且每个Post组件都包含许多子组件,用于显示标题、内容、喜欢、评论、标签等。
所有这些子组件都需要访问post id,以便从Redux存储中获取正确的数据。(以及孙子等),但这可能会很烦人,因此您可以将每个Post Package 在一个Context中,并将post id作为一个值,而不是prop-drilling,然后所有子和孙可以直接使用上下文值而无需任何支撑钻井。
Redux无法解决这个问题,因为它依赖于为每个帖子提供单独的上下文。

相关问题