React,如何知道何时渲染了纯函数组件?

Posted

技术标签:

【中文标题】React,如何知道何时渲染了纯函数组件?【英文标题】:React, how to know when a pure function component has been rendered? 【发布时间】:2019-02-20 09:30:13 【问题描述】:

我正在编写一个库来记录组件何时重新渲染,所以我需要检测它。

我可以通过猴子补丁React.Component.prototype.componentDidUpdate 为扩展React.Component 的组件执行此操作,但是如何检测纯函数组件何时呈现?这甚至可能吗?

【问题讨论】:

【参考方案1】:

由于函数组件不使用继承和生命周期钩子,因此无法在不修改组件源代码的情况下对其进行修补。

可以使用 React 开发工具使用的 API 来访问 React 渲染器,将钩子分配给 __REACT_DEVTOOLS_GLOBAL_HOOK__,然后它会被 React 渲染器捕获。一个很好的例子是react-render-hook。它本身不提供所需的功能,但可以根据要求进行修改,特别是this line。

【讨论】:

以上是关于React,如何知道何时渲染了纯函数组件?的主要内容,如果未能解决你的问题,请参考以下文章

redux 连接的组件如何知道何时重新渲染?

React,如何从同一个组件访问我的渲染函数中的 DOM 元素

如何将 React 组件渲染为函数返回

如何从函数调用中渲染 React 子组件?

如何从外部函数渲染组件

角度-知道模板渲染何时完成-使用异步管道