当前位置:首页 > React

react如何调用js

2026-02-11 16:45:05React

调用 JavaScript 函数

在 React 中直接调用 JavaScript 函数可以通过以下方式实现。将函数定义在组件外部或单独的文件中,通过 import 引入后直接调用。

// utils.js
export function greet(name) {
  return `Hello, ${name}!`;
}

// React 组件
import { greet } from './utils';

function App() {
  const message = greet('World');
  return <div>{message}</div>;
}

使用 eval(谨慎使用)

动态执行字符串形式的 JavaScript 代码可通过 eval,但需注意安全风险(如 XSS 攻击)。

function DangerousComponent() {
  const code = 'console.log("This is eval")';
  useEffect(() => {
    eval(code); // 仅在可信内容中使用
  }, []);
  return null;
}

动态加载外部脚本

通过 script 标签或 import() 动态加载第三方 JavaScript 文件。

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

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

使用 window 对象

全局函数或库挂载到 window 后,可直接通过 window 调用。

// 外部脚本定义
window.myLib = { showAlert: () => alert('Loaded!') };

// React 组件
function AlertComponent() {
  useEffect(() => {
    window.myLib?.showAlert();
  }, []);
  return null;
}

通过 dangerouslySetInnerHTML 注入

渲染包含 JavaScript 的 HTML 字符串时使用此方法,但需严格过滤内容。

react如何调用js

function HTMLInjection() {
  const html = '<button onclick="alert(\'Clicked\')">Click</button>';
  return <div dangerouslySetInnerHTML={{ __html: html }} />;
}

注意事项

  • 避免直接执行用户输入的代码,防止安全漏洞。
  • 动态加载脚本时考虑资源依赖和加载顺序。
  • 优先使用模块化导入而非全局变量。

标签: reactjs
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

react如何encode

react如何encode

React 中编码的实现方式 在 React 中,编码通常涉及对 URL、HTML 实体或特殊字符的处理。以下是几种常见的编码方法: 使用 encodeURIComponent 进行 URL 编码…

react如何开发

react如何开发

React 开发基础步骤 安装 Node.js 和 npm/yarn 确保系统已安装 Node.js(包含 npm)或 Yarn。React 项目依赖这些工具管理包和运行脚本。官方推荐使用 Node.…

react如何循环

react如何循环

循环渲染列表 在React中循环渲染列表通常使用map方法,这是最常用的方式。通过map可以将数组中的每个元素转换为React元素并渲染到页面上。 const items = ['Apple', '…

react如何扩展

react如何扩展

扩展 React 项目的常用方法 使用高阶组件(HOC) 高阶组件是一种复用组件逻辑的方式。通过包裹组件并注入额外属性或逻辑,可以实现功能扩展。例如,一个日志记录的高阶组件: function…

react如何筛选数据

react如何筛选数据

筛选数据的方法 在React中筛选数据通常涉及对数组的操作,结合状态管理和渲染逻辑。以下是几种常见的实现方式: 使用数组的filter方法 通过JavaScript数组的filter方法筛选数据,并…