当前位置:首页 > React

react如何监听

2026-03-30 16:47:10React

监听事件的基本方法

在React中,监听事件通常通过组件的onClickonChange等内置事件属性实现。例如,监听按钮点击事件:

<button onClick={() => console.log('按钮被点击')}>点击</button>

自定义事件监听

对于非原生DOM事件(如自定义事件或全局事件),可以使用addEventListenerremoveEventListener

import { useEffect } from 'react';

function Component() {
  useEffect(() => {
    const handleEvent = () => console.log('事件触发');
    window.addEventListener('customEvent', handleEvent);
    return () => window.removeEventListener('customEvent', handleEvent);
  }, []);
  return <div>监听自定义事件</div>;
}

监听状态变化

通过useEffect监听React状态(state)或属性(props)的变化:

const [count, setCount] = useState(0);

useEffect(() => {
  console.log('count变化:', count);
}, [count]);

监听路由变化

使用React Router时,可通过useLocationuseEffect监听路由变化:

import { useLocation } from 'react-router-dom';

function App() {
  const location = useLocation();
  useEffect(() => {
    console.log('路由变化:', location.pathname);
  }, [location]);
}

监听键盘事件

监听全局键盘事件需在useEffect中绑定:

useEffect(() => {
  const handleKeyPress = (e) => console.log('按键:', e.key);
  document.addEventListener('keydown', handleKeyPress);
  return () => document.removeEventListener('keydown', handleKeyPress);
}, []);

监听滚动事件

通过useEffect监听页面滚动:

useEffect(() => {
  const handleScroll = () => console.log('滚动位置:', window.scrollY);
  window.addEventListener('scroll', handleScroll);
  return () => window.removeEventListener('scroll', handleScroll);
}, []);

监听子组件事件

通过父组件传递回调函数(props)监听子组件事件:

react如何监听

function Child({ onAction }) {
  return <button onClick={onAction}>触发事件</button>;
}

function Parent() {
  const handleAction = () => console.log('子组件事件触发');
  return <Child onAction={handleAction} />;
}

标签: react
分享给朋友:

相关文章

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

react如何重置

react如何重置

重置 React 应用的状态 使用 useState 钩子重新初始化状态变量是最直接的方法。将状态变量重置为初始值或空值即可完成重置。 const [count, setCount] = useSt…

react如何引入

react如何引入

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

react 如何获取dom

react 如何获取dom

获取 DOM 的方法 在 React 中,可以通过 useRef 或 createRef 来获取 DOM 节点。useRef 是函数组件中常用的方法,而 createRef 通常用于类组件。 使用…

react如何检测窗口

react如何检测窗口

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