react 如何使用jquery
在 React 中使用 jQuery
React 和 jQuery 的设计理念不同,React 基于组件化和虚拟 DOM,而 jQuery 直接操作 DOM。混合使用时需谨慎,避免直接操作 React 管理的 DOM 元素。
安装 jQuery
通过 npm 或 yarn 安装 jQuery:

npm install jquery
# 或
yarn add jquery
引入 jQuery
在 React 组件中直接引入 jQuery:
import $ from 'jquery';
使用 jQuery 操作 DOM
在 componentDidMount 或 useEffect 中安全地操作 DOM:

import React, { useEffect } from 'react';
function MyComponent() {
useEffect(() => {
$('#myButton').click(() => {
alert('Button clicked!');
});
}, []);
return <button id="myButton">Click me</button>;
}
避免冲突的实践
- 封装 jQuery 插件:将 jQuery 逻辑封装成独立函数或自定义 Hook。
- 使用 Refs:通过 React 的
useRef或createRef获取 DOM 节点,而非直接使用 jQuery 选择器。
import React, { useRef, useEffect } from 'react';
function MyComponent() {
const buttonRef = useRef(null);
useEffect(() => {
$(buttonRef.current).click(() => {
alert('Button clicked via ref!');
});
}, []);
return <button ref={buttonRef}>Click me</button>;
}
清理 jQuery 事件
在 useEffect 的清理函数或 componentWillUnmount 中移除事件监听:
useEffect(() => {
const handleClick = () => alert('Clicked!');
$('#myButton').on('click', handleClick);
return () => {
$('#myButton').off('click', handleClick);
};
}, []);
替代方案
优先考虑 React 原生方法:
- 事件处理:使用
onClick等 React 事件。 - 动画:使用 CSS 或 React 动画库(如 Framer Motion)。
- DOM 操作:通过状态和 props 控制渲染。
注意事项
- 性能问题:直接操作 DOM 可能破坏 React 的虚拟 DOM 优化。
- 可维护性:混合使用可能增加代码复杂度。
- 必要性评估:除非集成遗留代码或特定插件,否则尽量避免混合使用。






