useRef总结

一、使用ref引用值

在react中ref的主要用途是用来获取DOM元素或者某个组件实例的引用。当你想访问真实的DOM节点,或者需要在组件之间共享可变数据且不需要触发重新渲染时,通常会使用ref。在vue中ref是响应式的,当数据发生改变时,相关的视图会自动更新。但在react中不是响应式的。

二、给组件添加 ref

可以通过从 React 导入 useRef Hook 来为组件添加一个 ref:

javascript 复制代码
import { useRef } from 'react';

在组件内,调用 useRef Hook 并传入你想要引用的初始值作为唯一参数。例如,这里的 ref 引用的值是"0":

javascript 复制代码
const ref = useRef(0);

useRef 返回一个这样的对象:

javascript 复制代码
{ 
  current: 0 // 你向 useRef 传入的值
}

你可以用 ref.current 属性访问该 ref 的当前值。这个值既可以读取它也可以写入它。

三、何时使用

  • 存储和操作 DOM 元素
  • 存储不需要被用来计算 JSX 的其他对象。
  • 如果你的组件需要存储一些值,但不影响渲染逻辑,请选择 ref

四、使用实例

文本输入框获得焦点
javascript 复制代码
import { useRef } from 'react';

export default function Form() {
  const inputRef = useRef(null);

  function handleClick() {
    inputRef.current.focus();
  }

  return (
    <>
      <input ref={inputRef} />
      <button onClick={handleClick}>
        发布
      </button>
    </>
  );
}

点击完发布按钮,输入框会获得焦点

相关推荐
永远的个初学者32 分钟前
图片优化 上传图片压缩 npm包支持vue(react)框架开源插件 支持在线与本地
前端·vue.js·react.js
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ33 分钟前
npm i / npm install 卡死不动解决方法
前端·npm·node.js
Kratzdisteln36 分钟前
【Cursor _RubicsCube Diary 1】Node.js;npm;Vite
前端·npm·node.js
杰克尼1 小时前
vue_day04
前端·javascript·vue.js
明远湖之鱼1 小时前
浅入理解跨端渲染:从零实现 React DSL 跨端渲染机制
前端·react native·react.js
悟忧2 小时前
规避ProseMirror React渲染差异带来的BUG
前端
小皮虾2 小时前
小程序云开发有类似 uniCloud 云对象的方案吗?有的兄弟,有的!
前端·javascript·小程序·云开发
Android疑难杂症2 小时前
鸿蒙Notification Kit通知服务开发快速指南
android·前端·harmonyos
T___T2 小时前
全方位解释 JavaScript 执行机制(从底层到实战)
前端·面试
阳懿2 小时前
meta-llama-3-8B下载失败解决。
前端·javascript·html