DEV Community 中文 关注 在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 至关重要。 useRef in React dev.to DEV Community 中文 RSS thenote.app
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 至关重要。