在React中使用useRef 笔记

在React中使用useRef

useRef 是一个用于创建持久可变引用的 React Hook。它允许存储值,当这些值发生变化时不会触发重新渲染。一个常见用途是直接访问 DOM 元素,从而实现诸如聚焦输入框等操作。要使用它,需从 React 中导入 useRef 并用一个值对其进行初始化。引用对象拥有一个 current 属性,用于存储所保存的值或 DOM 节点。修改 ref.current 不会导致组件重新渲染,这与 useState 不同。useState 用于管理会影响 UI 并在更新时触发重新渲染的状态。相比之下,useRef 适用于需要在多次渲染之间持久化且无需更新 UI 的值,例如定时器 ID 或 DOM 引用。例如,更改 useState 变量会触发重新渲染,而更新 useRef.current 则不会。访问 DOM 元素涉及使用 ref 属性将引用附加到元素上。渲染完成后,ref.current 指向实际的 DOM 节点,从而允许直接交互。这类似于遥控器直接与电视进行交互。useRef 的关键在于始终通过 .current 属性访问其值。虽然更改 .current 会改变值,但 React 不会自动重新渲染。因此,useRef 最好被理解为一种在不触发重新渲染的情况下“记住一个值”和“访问一个引用”的方式。两者的主要区别在于其行为:useState 的变化会导致重新渲染和 UI 更新,而 useRef 的变化则不会。理解这一差异对于在 React 应用中有效使用 useRef 至关重要。