从 React 中的自定义钩子返回组件是个好主意吗?

Pyt*_*tan 7 reactjs

在很多情况下,自定义挂钩仅用于返回值或函数。当然,我们可以从自定义挂钩返回组件,但这是一个好主意吗?

从自定义挂钩返回组件有什么优点和缺点?

kri*_*yaa 10

好吧,这取决于观点,通常这不是一个好主意,因为它违反了关注点分离的概念,因为hooks目的是提供功能,而不是render

进一步说一下优缺点:

优点:

  1. 可重用性:您可以将特定的 UI 功能打包到单个钩子中,并通过从自定义钩子返回组件来跨多个组件使用它。
  2. 抽象:通过从钩子中返回组件,可以隐藏一些实现细节,提高代码的可读性和可维护性。
  3. 方便:有时,从钩子返回一个组件可能比传递几个 props 更实用。

缺点:

  1. 令人困惑:当组件从钩子返回时,理解应用程序中的数据和控制流可能更具挑战性。那些不熟悉该模式的开发人员可能也会感到困惑。
  2. 测试:因为它包括测试钩子和组件,所以评估从钩子检索的组件可能比测试典型组件更困难。
  3. 性能:如果钩子返回的组件复杂且计算密集,则渲染它可能会对性能产生影响。