You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在旧HTML/JS/jQuery项目中使用React组件及第三方表格组件

Can I use a third-party React data table component with React CDN in a jQuery app?

Absolutely feasible! Let me break this down for you clearly, since you're integrating React via CDNs into an existing jQuery app.

Key Prerequisite

First, you’ll need to pick a third-party React data table component that offers a UMD (Universal Module Definition) build via CDN. Most popular React table libraries provide this (think react-table, react-data-grid, or even MUI’s DataGrid for a feature-rich option). UMD builds play nicely with global React/ReactDOM instances from CDNs, as they attach directly to the window object.

Step-by-Step Implementation Example

Here’s a concrete, working example using react-table (a lightweight, flexible table library) to show how it all fits together:

1. Load CDNs in the Correct Order

Add these dependencies to your HTML in this exact sequence to avoid load-time errors:

<!-- Core React/ReactDOM (production builds) -->
<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>

<!-- Third-party table component (react-table UMD build) -->
<script src="https://unpkg.com/react-table@7.8.0/dist/react-table.production.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/react-table@7.8.0/react-table.css">

<!-- Babel standalone to compile JSX directly in the browser -->
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>

2. Build & Render Your React Table

Create a script tag with type="text/babel" to write your JSX code, then render the table into a DOM element (this could be an element already generated by your jQuery app):

<script type="text/babel">
  // Pull the useTable hook from the global ReactTable object
  const { useTable } = window.ReactTable;

  // Define your reusable table component
  function DataTable({ columns, data }) {
    const {
      getTableProps,
      getTableBodyProps,
      headerGroups,
      rows,
      prepareRow,
    } = useTable({ columns, data });

    return (
      <table {...getTableProps()} className="react-table">
        <thead>
          {headerGroups.map(headerGroup => (
            <tr {...headerGroup.getHeaderGroupProps()}>
              {headerGroup.headers.map(column => (
                <th {...column.getHeaderProps()}>{column.render('Header')}</th>
              ))}
            </tr>
          ))}
        </thead>
        <tbody {...getTableBodyProps()}>
          {rows.map(row => {
            prepareRow(row);
            return (
              <tr {...row.getRowProps()}>
                {row.cells.map(cell => (
                  <td {...cell.getCellProps()}>{cell.render('Cell')}</td>
                ))}
              </tr>
            );
          })}
        </tbody>
      </table>
    );
  }

  // Sample data and column config (replace with your actual data)
  const tableColumns = [
    { Header: 'Full Name', accessor: 'name' },
    { Header: 'Age', accessor: 'age' },
    { Header: 'Email', accessor: 'email' },
  ];

  const tableData = [
    { name: 'John Doe', age: 34, email: 'john.doe@example.com' },
    { name: 'Jane Smith', age: 29, email: 'jane.smith@example.com' },
  ];

  // Render the table into an existing DOM element (e.g., a jQuery-created div)
  const root = ReactDOM.createRoot(document.getElementById('react-table-container'));
  root.render(<DataTable columns={tableColumns} data={tableData} />);
</script>

3. Pro Tips for Smooth Coexistence with jQuery

  • Version Compatibility: Always confirm the table component supports your React version (e.g., React 18 requires components that work with createRoot instead of the legacy ReactDOM.render).
  • Style Isolation: Your jQuery app may have global styles that clash with the React table. Add a unique class (like react-table in the example) to your table and wrap its styles in that class to avoid conflicts.
  • Data Sharing: To pass data between jQuery and React, you can access window variables directly, or use DOM data-* attributes. For example, pull data from a jQuery-generated element’s data attributes in your React component.
  • Avoid Global Conflicts: If you hit naming collisions, explicitly reference global objects (e.g., window.React instead of just React) to clarify which library you’re using.

What If a Component Doesn’t Have a CDN?

If your preferred table library doesn’t offer a UMD build, you’d need to bundle it with a tool like Webpack or Vite, then include the bundled JS file in your app. But for most popular table components, a CDN/UMD build is available, so this shouldn’t be necessary.

Just double-check the component’s official docs for CDN installation steps, and you’ll be up and running in no time!

内容的提问来源于stack exchange,提问作者Manikanta Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 17:17:45