当前位置:首页 > 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架构如何

react架构如何

React 架构核心概念 React 的架构围绕组件化、虚拟 DOM 和单向数据流设计。组件是构建用户界面的独立模块,分为函数组件和类组件。虚拟 DOM 通过高效的 Diff 算法减少直接操作真实 D…

react如何引入

react如何引入

引入React的方法 React可以通过多种方式引入项目,具体取决于项目需求和开发环境。以下是常见的几种方法: 通过CDN引入 在HTML文件中直接通过CDN链接引入React和ReactDOM:…

如何设计react组件

如何设计react组件

设计 React 组件的核心原则 React 组件的设计需要遵循高内聚、低耦合的原则,确保组件功能独立且易于维护。组件的设计可以分为展示组件和容器组件两类,展示组件负责 UI 渲染,容器组件负责逻辑处…

react如何检测窗口

react如何检测窗口

监听窗口大小变化 使用useEffect钩子和resize事件监听窗口尺寸变化。在组件挂载时添加事件监听器,卸载时移除监听器以避免内存泄漏。 import { useState, useEffect…

react 如何算精通

react 如何算精通

精通 React 的标准 精通 React 不仅需要掌握基础语法和核心概念,还需具备解决复杂问题、优化性能和架构设计的能力。以下是衡量 React 精通程度的关键维度: 核心概念与机制 组件…

react如何提交表单

react如何提交表单

表单提交的基本方法 在React中提交表单通常通过控制组件状态和事件处理实现。表单数据通过onSubmit事件捕获,并阻止默认提交行为以避免页面刷新。 import { useState } fro…