首页 文章

每个父状态更改都会调用React功能组件

提问于
浏览
0

我是React的新手,我发现让我感到困惑的事情 .

几乎每个教程都建议使用功能(无状态)组件 . 但是最近我发现如果功能组件是子组件,那么每次父组件状态或者道具改变时它都会被渲染,即使我没有传递任何道具 . 基于类的组件不会发生这种情况 . 这种情况的原因是什么?

我应该只使用基于类的组件才能获得最高性能吗?

1 回答

  • 3

    以下是您开箱即用的选项:

    • 像你一样使用纯函数:

    • []易于编写和理解

    • [ - ]每次父组件重新渲染时重新渲染(如果你没有传递任何道具可能不是问题)

    • 使用类组件并实现shouldComponentUpdate

    • []您可以完全控制重新渲染条件 .

    • [ - ]需要编写更多代码

    • 使用PureComponent

    • []自动使用浅的shouldComponentUpdate,因此编写的代码更少

    • [ - ]会产生不良副作用(对于复杂对象和非纯子组件无法正确渲染的假阴性)

    在您的特定情况下,由于您没有将任何道具传递给您的子组件,因此使用纯函数是完全可以接受的 . 因为这意味着它只是纯粹的静态HTML,并且每次都会重新渲染,即使它是父级的一部分 .

    最后,对于更高级的用途,请查看https://github.com/acdlite/recompose

相关问题