美文网首页
React18之获取DOM(学习笔记)

React18之获取DOM(学习笔记)

作者: kevision | 来源:发表于2026-03-02 09:28 被阅读0次

React中获取DOM


在 React 组件中获取/操作 DOM,需要使用 useRef React Hook钩子函数,分为两步:

  1. 使用useRef创建 ref 对象,并与 JSX 绑定
image.png
  1. 在DOM可用时,通过 inputRef.current 拿到 DOM 对象
image.png

ref操作子组件


要想操作子组件,需要用forwardRef包住子组件函数,并且用useImperativeHandle暴露子组件的属性和方法。

import { forwardRef, useState, useImperativeHandle, useRef } from 'react';

const Son = forwardRef((props, ref) => {
  const [count] = useState(0);
  const inputRef = useRef(null);
  const handleClick = () => {
    console.log('click');
  };
  const focus = () => {
    inputRef.current.focus();
  };
  // 相当于vue3中的defineExpose
  useImperativeHandle(ref, () => {
    return {
      handleClick,
      focus,
      count,
    };
  }, [count]);
  return <input ref={inputRef} />;
});

const App = () => {
  const sonRef = useRef(null);
  const handleShowSonRef = () => {
    console.log('sonRef count', sonRef.current.count);
    sonRef.current.focus();
  };
  return (
    <div>
      <div>
        <button onClick={handleShowSonRef}>show sonRef</button>
      </div>
      <Son ref={sonRef} />
    </div>
  );
};
export default App;

相关文章

  • 《DOM探索之基础详解篇》笔记

    慕课网 DOM探索之基础详解篇 学习笔记 一、认识DOM DOM 提供了用程序来动态控制HTML的接口。 DOM级...

  • 锋利的jQuery笔记1

    标签: 我的笔记 认识jQuery jQuery对象和DOM对象 DOM对象可以通过javascript获取。 j...

  • js获取Dom对象

    通过id获取Dom 通过class获取dom 通过标签获取dom 通过name属性获取dom 通过选择器query...

  • 学习W3school的DOM教程

    总而言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。 DOM实例,学习全部DOM操作。

  • 前端工程师之DOM编程艺术(持续更新)

    @(书籍阅读)[网易云课堂|DOM] DOM编程艺术 网易前端微专业之《DOM编程艺术》笔记,持续更新; 更新事件...

  • DOM笔记

    DOM笔记获取元素获取指定元素获取子元素&兄弟元素&父元素获取第一&最后一个子元素节点操作克隆节点 - clone...

  • 02-JQuery操作DOM

    一、JS获取DOM元素和JQuery获取DOM元素的区别 JavaScript获取的是DOM对象,而Jquery获...

  • DOM之获取元素

    API简介 API(Application Programming Interface,应用程序编程接口)是一些预...

  • js : DOM+BOM(window.location)

    DOM: document object model DOM 树 DOM中元素获取的方式 id获取: var oD...

  • js第六天笔记

    DOM: document object model DOM 树 DOM中元素获取的方式 通过ID获取(getEl...

网友评论

      本文标题:React18之获取DOM(学习笔记)

      本文链接:https://www.haomeiwen.com/subject/ooehdstx.html