npm 包 unnecessary-react-render 使用教程

阅读时长 4 分钟读完

在 React 应用开发过程中,我们很容易写出一些不必要的渲染,这些渲染会带来性能问题,特别是复杂应用的情况下。为了解决这个问题,我们可以使用一款称为 unnecessary-react-render 的 npm 包,这个包能够帮助你检测并消除掉无用的渲染,提升你的应用性能。

安装

你可以使用以下命令来安装 unnecessary-react-render 包:

使用

在开发环境下使用

在开发环境下,我们可以使用 React.addons.Perf 来监测组件的渲染是否有效。

首先,在你的 React 应用入口文件(例如 index.js)中添加以下代码,这个代码会在开发环境下自动收集出所有组件的渲染信息:

接下来,在你的浏览器中打开你的应用,并在你的 DevTools 中检查控制台聚着的 why did you render。它们将会告诉你哪些组件渲染的次数过多,哪些可以被优化。

在生产环境下使用

在生产环境下,我们可以使用另一个库 @welldone-software/why-did-you-render,它可以通过覆盖 React 渲染函数来分析你的应用。

首先,在你的应用入口文件(例如 index.js)中导入 @welldone-software/why-did-you-renderreact-dom,并将其与 React 一起传入使用:

然后,在你的控制台中搜索所有 WHY-DID-YOU-RENDER 文本,它将会显示你的组件渲染的原因。

示范

下面是一个简单的组件 App

-- -------------------- ---- -------
----- --- ------- --------------- -
  ----- - -
    ------ --
  --

  ----------- - -- -- -
    --------------- ------ ---------------- - - ---
  --

  -------- -
    ---------------- -- -----------
    ------ -
      -----
        --------- ----------------------
        ------- ---------------------------------------------
      ------
    --
  -
-

通过使用 unnecessary-react-render,我们可以优化这个组件的渲染。例如,在这里,每次组件更新时,我们的控制台会记录一条日志。然而,如果我们只想在 count 状态发生变化时才记录日志,我们就可以使用 pure 组件同时使用 unnecessary-react-render。以下是修改后的 App 组件:

在这里,我们使用了 logRenders 高阶组件包裹了我们的 App 组件,这会将我们的日志信息记录在控制台上。通过使用 PureComponent,我们告诉 React 我们的组件只在状态或属性改变时才需要更新。这样,当我们的 count 状态改变时,我们的组件才会重新渲染,并记录日志信息。

结论

通过使用 unnecessary-react-render,我们可以消除冗余的组件渲染,从而提升 React 应用的性能。虽然使用此包会增加代码的复杂度,但在处理大型应用时,它会是一个非常有用的工具。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005678d81e8991b448e3ebd

纠错
反馈