当前位置:首页 > React

react中如何写原生js

2026-01-25 18:34:35React

在 React 中编写原生 JavaScript 可以通过以下几种方式实现,具体取决于使用场景和需求:

直接操作 DOM

React 推荐使用虚拟 DOM 进行更新,但在某些情况下需要直接操作真实 DOM。可以通过 useRefdocument.getElementById 获取 DOM 节点:

react中如何写原生js

import { useRef, useEffect } from 'react';

function Example() {
  const divRef = useRef(null);

  useEffect(() => {
    if (divRef.current) {
      divRef.current.style.backgroundColor = 'red';
    }
  }, []);

  return <div ref={divRef}>This div will be red</div>;
}

使用原生事件监听

React 封装了合成事件系统,但也可以直接使用原生事件监听:

useEffect(() => {
  const handleClick = () => console.log('Native click');
  document.addEventListener('click', handleClick);

  return () => document.removeEventListener('click', handleClick);
}, []);

调用原生 API

可以直接调用浏览器原生 API,例如 localStoragefetch 等:

react中如何写原生js

useEffect(() => {
  localStorage.setItem('key', 'value');
  const data = localStorage.getItem('key');
  console.log(data);
}, []);

动态加载脚本

需要引入第三方库或执行特定脚本时,可以直接操作 script 标签:

useEffect(() => {
  const script = document.createElement('script');
  script.src = 'https://example.com/script.js';
  script.async = true;
  document.body.appendChild(script);

  return () => {
    document.body.removeChild(script);
  };
}, []);

绕过 React 的更新机制

在极少数情况下需要强制更新 DOM,可以通过 dangerouslySetInnerHTML 或直接操作 DOM:

function RawHTML() {
  const html = '<span>Raw HTML</span>';
  return <div dangerouslySetInnerHTML={{ __html: html }} />;
}

注意事项

  • 直接操作 DOM 可能破坏 React 的虚拟 DOM 一致性,应谨慎使用。
  • 原生事件监听需注意清理,避免内存泄漏。
  • dangerouslySetInnerHTML 可能导致 XSS 攻击,需确保内容安全。

标签: 如何写react
分享给朋友:

相关文章

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取日期 在 React 项目中,可以通过 Moment.js 库轻松处理日期和时间。以下是几种常见的日期获取方法。 安装 Moment.js 确保项目中已安装 Mome…

react如何记忆

react如何记忆

React 记忆技术 在 React 中,记忆(Memoization)是一种优化技术,用于避免不必要的重新渲染或计算。React 提供了多种内置方法和第三方库来实现记忆功能。 useMemo Ho…

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impor…

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Rea…