React 直接操作 DOM

React 直接操作 DOM

一般而言,我们在 React 中使用虚拟 DOM 来操作 DOM,但是有些时候,我们需要直接操作 DOM。在 React 中,我们可以使用 useRef 这个 Hook 函数来获取 DOM 元素。分为以下两个步骤:

  1. 在组件中定义一个 ref,并通过 useRef Hook 创建一个 ref 对象,并将其赋值给组件的 ref 属性。
  2. 在组件中通过 ref.current 访问 ref 对象,获取 DOM 元素。
    以下是一个简单的例子,展示如何在 React 中直接操作 DOM:
js 复制代码
import { useRef } from 'react';

function App() {
  // 创建一个 ref 对象
  const inputRef = useRef(null);
  return (
    <div>
      {/* 绑定一个 ref 到 input 组件 */}
      <input ref={inputRef} />
      <button
        onClick={() => {
          // 通过 ref 对象获取输入框组件
          console.log(inputRef.current);
          console.dir(inputRef.current);
        }}
      >
        聚焦输入框
      </button>
    </div>
  );
}

export default App;

这个例子中,我们首先使用 useRef Hook 创建了一个名为 inputRef 的 ref 对象,并将其赋值给组件的 ref 属性。然后,在组件中,我们通过 ref.current 访问该 ref 对象,获取到 DOM 元素。最后,我们通过 ref.current 就可以获取到 DOM 元素。

需要注意的是,在 DOM 可用时,我们才能够使用 ref.current 访问 DOM 元素。因此,在组件渲染之前,我们无法获取到 DOM 元素。

相关推荐
Bellafu6661 天前
selenium 常用xpath写法
前端·selenium·测试工具
blackorbird1 天前
Edge 浏览器 IE 模式成攻击突破口:黑客借仿冒网站诱导攻击
前端·edge
谷歌开发者1 天前
Web 开发指向标 | Chrome 开发者工具学习资源 (一)
前端·chrome·学习
名字越长技术越强1 天前
Chrome和IE获取本机ip地址
前端
天***88961 天前
Chrome 安装失败且提示“无可用的更新” 或 “与服务器的连接意外终止”,Chrome 离线版下载安装教程
前端·chrome
半梦半醒*1 天前
zabbix安装
linux·运维·前端·网络·zabbix
大怪v1 天前
【搞发🌸活】不信书上那套理论!亲测Javascript能卡浏览器Reader一辈子~
javascript·html·浏览器
清羽_ls1 天前
React Hooks 核心规则&自定义 Hooks
前端·react.js·hooks
你的人类朋友1 天前
“签名”这个概念是非对称加密独有的吗?
前端·后端·安全
西陵1 天前
Nx带来极致的前端开发体验——任务缓存
前端·javascript·架构