在 React 函数式组件里,可以使用 useRef 这个 hook,创建在组件里一直存在并且可以任意修改的值,跟组件的 state 不同的地方是这种值被修改之后不会导致重新渲染组件。
在这个 AppHook 组件里使用一下 useRef,比如我想记录一下这个组件被渲染的次数,声明一个 renderCount 它的值可以使用 useRef 创建一个 ref,使用这个 hook 的时候要提供一个初始值,比如数字 0 。
useRef 会返回一个对象,这个对象里的 current 属性就是我们要用的值,每次渲染组件的时候可以设置一下 renderCount.current 这个属性的值,让它等于 renderCount.current + 1 。
然后在组件的视图这里找个地方,先用一组 p 元素,里面包装的是一组 small 元素,共渲染多少次,中间加上表示当前渲染次数的 renderCount 里的 current 属性的值。
在浏览器测试一下,现在界面上会显示 AppHook 组件总共被渲染的次数,点击界面上的按钮会改变组件状态,这样组件就会被重新渲染,每次渲染组件的时候,就会让 renderCount 这个可以修改的 Ref 对象里的 current 这个属性的值加上 1 。