如何在 React 组件中使用全局定义的脚本

发布日期:2026-07-15 11:23:03   来源 : 杭州电子商务研究院    浏览量 :5
杭州电子商务研究院 发布日期:2026-07-15 11:23:03  
5

介绍

React 可用于创建各种 Web 应用。React 的灵活性使开发人员能够轻松地将其嵌入到现有的 Web 应用中。但将 React 嵌入到当前系统中意味着除了 React 之外,还需使用其他库或脚本。

React 使用虚拟 DOM 来操作网页上的 DOM 节点,而大多数其他库可能会直接进行 DOM 操作。因此,在本指南中,您将学习如何在 React 组件中使用全局定义或外部添加的脚本。

声明全局变量

全局变量在脚本标记内定义,独立于 React 应用。此全局变量可以是出于 SEO 目的需要在页面上预渲染的数据,也可以包含用户的信息。

全局变量可以定义如下。

      <script>
window.user = {
    id: 3,
    name: "John Doe",
}
</script>
    

访问全局变量

window是浏览器环境中的全局对象。附加到 window 对象的任何属性都可以网页上的任何脚本访问,包括 React 应用的脚本。

由于window是一个全局对象,React 代码也可以访问其属性,如下所示。

      import React from "react";

class App extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      user: window.user,
    };
  }

  render() {
    const { user } = this.state;
    return (
      <div>
        <p> ID: {user.id} </p>
        <p> Name: {user.name} </p>
      </div>
    );
  }
}
    

您也可以直接访问全局对象的属性,而无需使用窗口对象。但这会使代码难以调试,因为用户对象定义的位置不明显。通过窗口对象访问任何属性都会明显表明它是全局定义和设置的。

在 React 组件中使用外部脚本

现在,有时您可能需要一个没有自己的 React 组件或可能与 React 工作方式不同的库 - 例如 jQuery。

jQuery 是一个流行的 JavaScript 库,但它不使用虚拟 DOM;相反,它直接操作 DOM。因此,在本节中,您将学习如何在 React 组件中使用 jQuery。

假设您需要在单击按钮时隐藏用户信息。为此,您可以使用 jQuery 的hide()方法。您通常会将 DOM 选择器传递给 jQuery。但是在 React 中使用 jQuery 时,您需要提供一个ref

ref提供了一个接口来访问在React 组件的render方法中定义的 DOM 节点。您可以使用React.createRef()方法创建ref。要获取实际的 DOM 元素,请将ref传递给react-dom的findDOMNode()方法因为您要直接操作 DOM 节点。

      import React from "react";
import { findDOMNode } from "react-dom";

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      user: window.user,
    };
    this.domRef = React.createRef();
  }

  hideInfo = () => {
    const $ = window.$;
    const el = findDOMNode(this.domRef);
    $(el).hide();
  };

  render() {
    const { user } = this.state;
    return (
      <div>
        <button onClick={this.hideInfo}>Hide Info</button>
        <div ref={this.domRef}>
          <p> ID: {user.id} </p>
          <p> Name: {user.name} </p>
        </div>
      </div>
    );
  }
}
    

结论

我不建议将直接进行 DOM 操作的库与 React 一起使用。这可能会导致代码中的错误,而这些错误可能很难追踪,尤其是在企业级应用中。但有时您可能希望使用特定的库来满足完成应用程序的特定要求。在这种情况下,使用 React ref来访问挂载在网页上的 DOM 节点,然后使用 ref 您可以调用外部库中的任何方法。

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据