【问题标题】:Does the React Context API replace the need for component props?React Context API 是否取代了对组件 props 的需求?
【发布时间】:2020-02-06 07:12:57
【问题描述】:

我最近升级了一个 React 15 项目以使用 React 16.9。具体来说,我已经用新的 Context API、纯函数式组件和钩子完全替换了 redux。通过 Context API,我们还获得了嵌套子消费者获取数据的能力,而无需使用 props 一直传递数据。但是,我注意到我在任何地方都没有任何组件道具,因为所有内容都是通过提供者/消费者上下文传递的。

所以我的问题是上下文 API 是否会使组件道具过时?

【问题讨论】:

  • 如果你需要将 props 传递到更深一层,为什么要使用 context API 呢?

标签: javascript reactjs react-props react-component react-context


【解决方案1】:

我发现有人滥用 reduxcontext。顺便说一句,redux 在内部使用 context

说实话,prop 在大多数情况下仍然应该是你最好的朋友。只有当您想避免嵌套的 prop 传递时,您才可以探索 context,其中将提供者创建为父级,然后所有深层子级都可以将其作为 props 接收。

Prop 仍然是孩子连接到提供者的方式。唯一的区别是这些道具现在存储在一种“全局”空间中。

所以简而言之,context 不会取代prop,它仍然使用prop

【讨论】:

    【解决方案2】:

    您已经回答了您的问题。 Context API 避免了我引用 react docs 中的一个:

    上下文主要用于需要在不同嵌套级别的许多组件访问某些数据时。谨慎应用它,因为它使组件重用变得更加困难

    没有其他原因。如果我想重用组件或导出依赖于上下文的组件,用户对此一无所知。诸如登录用户、主题或全局状态(如整个应用程序的工作流程详细信息等)的用例是一个很好的用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-24
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 2016-12-07
      相关资源
      最近更新 更多