react 中useRef的用法

简介: 在React中,使用useRef可以创建一个可变的ref引用,允许你访问DOM节点或者在组件之间存储任意的可变值。useRef本质上是提供一个容器,容器中存放的内容可以在组件的多次渲染之间进行保留,以及实现对DOM节点的操作。

在React中,使用useRef可以创建一个可变的ref引用,允许你访问DOM节点或者在组件之间存储任意的可变值。

useRef本质上是提供一个容器,容器中存放的内容可以在组件的多次渲染之间进行保留,以及实现对DOM节点的操作。

以下是一些useRef的用法和示例:

  1. 使用useRef访问DOM节点:
import React, { useRef } from 'react';

function MyComponent() {
  const inputRef = useRef();

  const handleFocus = () => {
    inputRef.current.focus();
  }

  return (
    <div>
      <input type="text" ref={inputRef} />
      <button onClick={handleFocus}>Focus Input</button>
    </div>
  );
}

在上面的示例中,我们通过useRef创建一个名为inputRef的变量,它将引用input元素的DOM节点。当按钮被点击时,我们调用handleFocus函数并在其中使用ref.current.focus()方法聚焦input元素。

  1. useRef存储可变数据:
import React, { useState, useRef } from 'react';

function MyComponent() {
  const counterRef = useRef(0);
  const [counter, setCounter] = useState(0);

  const handleClick = () => {
    setCounter(counter + 1);
    counterRef.current += 1;
  }

  return (
    <div>
      <p>Counter: {counter}</p>
      <p>Counter (ref): {counterRef.current}</p>
      <button onClick={handleClick}>Increment Counter</button>
    </div>
  );
}

在上面的示例中,我们使用useRef创建一个名为counterRef的变量,并初始化为0。我们还使用useState创建一个名为counter的状态和一个名为setCounter的更新函数。

当按钮被点击时,我们调用setCounter更新counter状态,同时我们也通过ref.current更新了counterRef变量的值。在组件下一次重新渲染时,counter状态会被重置,但是counterRef变量的值会保留在当前状态。

总之,使用useRef可以轻松地访问DOM节点以及在组件之间存储可变数据。

相关文章
|
4月前
|
前端开发 JavaScript
React中函数式Hooks之useRef的使用
React中函数式Hooks的useRef用于获取DOM元素的引用,示例代码演示了其基本用法。
39 3
|
5月前
|
前端开发
React使用useRef ts 报错
【8月更文挑战第17天】
91 4
|
3月前
|
存储 缓存 JavaScript
深入理解 React-Hooks 之 useRef
【10月更文挑战第20天】总之,`useRef` 是 React-Hooks 中一个非常实用的工具,它为我们提供了一种灵活而强大的方式来处理组件中的各种数据和操作。通过深入理解和掌握 `useRef` 的原理和用法,我们能够更好地构建高效、稳定的 React 应用。
46 6
|
3月前
|
存储 前端开发 JavaScript
React useState 和 useRef 的区别
本文介绍了 React 中 `useState` 和 `useRef` 这两个重要 Hook 的区别和使用场景。`useState` 用于管理状态并在状态变化时重新渲染组件,适用于表单输入、显示/隐藏组件、动态样式等场景。`useRef` 则用于在渲染之间保持可变值而不触发重新渲染,适用于访问 DOM 元素、存储定时器 ID 等场景。文章还提供了具体的代码示例,帮助读者更好地理解和应用这两个 Hook。
65 0
|
4月前
|
存储 前端开发 JavaScript
react的useRef用什么作用
react的useRef用什么作用
75 1
|
5月前
|
缓存 JavaScript 前端开发
react.js高级用法
【8月更文挑战第27天】react.js高级用法
51 2
|
5月前
|
Web App开发 监控 前端开发
React 性能监测工具大揭秘!Chrome DevTools 高级用法来袭,让你的 React 应用性能飙升!
【8月更文挑战第31天】在前端开发中,React 框架虽简化了高效、交互性强的用户界面构建,但应用复杂性增加亦可能引发性能问题。此时,Chrome DevTools 凭其性能面板成为了优化应用性能的重要工具,能帮助开发者记录与分析加载时间、渲染及脚本执行等性能指标,定位并解决性能瓶颈。同时,其 React 开发者扩展工具允许实时监控组件状态变化,进一步提升性能。结合运用这些功能,将有助于打造流畅的用户体验。
131 0
|
6月前
|
前端开发 JavaScript 数据格式
react18【系列实用教程】Hooks (useState,useReducer,useRef,useEffect,useContext,useMemo,useCallback,自定义 Hook )
react18【系列实用教程】Hooks (useState,useReducer,useRef,useEffect,useContext,useMemo,useCallback,自定义 Hook )
118 1
|
6月前
|
JavaScript
react18【系列实用教程】useRef —— 创建 ref 对象,获取 DOM (2024最新版)
react18【系列实用教程】useRef —— 创建 ref 对象,获取 DOM (2024最新版)
75 0
|
8月前
|
前端开发 JavaScript 测试技术
React Hooks之useState、useRef
React Hooks之useState、useRef