跳到主要内容

useRef

useRef Hook 允许您在渲染之间保留值

它可用于存储在更新时不会导致重新渲染的可变值

它可用于直接访问 DOM 元素

不会导致重新渲染

如果我们试图计算我们的应用程序使用 useState Hook 渲染了多少次,我们就会陷入无限循环,因为这个 Hook 本身会导致重新渲染

为了避免这种情况,我们可以使用 useRef Hook

实时编辑器
结果
Loading...

useRef() 只返回一项。 它返回一个名为 current 的对象

当我们初始化 useRef 时, 我们设置初始值: useRef(0)

提示

就像这样做: const count = { current: 0 }

我们可以使用 count 访问 count.current

在您的计算机上运行此程序并尝试输入内容以查看应用程序渲染计数的增加


访问 DOM 元素

一般来说,我们想让 React 处理所有的 DOM 操作

但在某些情况下,可以使用 useRef 而不会引起问题

在 React 中,我们可以为元素添加一个 ref 属性,以便直接在 DOM 中访问它

实时编辑器
结果
Loading...

跟踪状态变化

useRef Hook 也可用于跟踪以前的状态值

这是因为我们能够在渲染之间保留 useRef

实时编辑器
结果
Loading...

这次我们结合使用 useState, useEffectuseRef 来跟踪之前的状态

useEffect 中,每次通过在输入字段中输入文本来更新 inputValue 时,我们都会更新 useRef 当前值