useEffect 基础用法
useEffect 是 React 提供的 Hook,用于在函数组件中处理副作用操作。常见副作用包括数据获取、订阅事件、手动修改 DOM 等。使用 useEffect 可以让我们在组件渲染后执行某些操作。
1. 基本语法
import { useEffect } from 'react';
useEffect(() => {
// 执行副作用逻辑
});
`
该函数在组件每次渲染后都会执行。
2. 只执行一次(模拟 componentDidMount)
在依赖项数组中传入空数组,表示仅在初次渲染时执行一次:
useEffect(() => {
console.log('组件挂载');
}, []);
3. 依赖项变化时触发
传入依赖项数组,当其中的值发生变化时重新执行副作用函数:
useEffect(() => {
console.log('count 改变了');
}, [count]);
如果 count 变化,useEffect 就会重新执行。
4. 清理副作用(模拟 componentWillUnmount)
useEffect 可以返回一个清理函数,在组件卸载或依赖变化前执行:
useEffect(() => {
const timer = setInterval(() => {
console.log('定时任务');
}, 1000);
return () => {
clearInterval(timer); // 清理定时器
console.log('组件卸载或副作用清理');
};
}, []);
5. 多个 useEffect
可以在一个组件中使用多个 useEffect,分别处理不同的副作用逻辑:
useEffect(() => {
console.log('监听 count');
}, [count]);
useEffect(() => {
console.log('监听 name');
}, [name]);
总结
useEffect 是函数组件中处理副作用的标准方式,灵活替代了类组件的生命周期方法。通过依赖项数组,可以精确控制副作用函数的执行时机,并使用返回的清理函数管理资源释放。
相关内容
- React 的设计理念:声明式 UI、组件化 React 的设计理念侧重于声明式 UI 和组件化。这种方式使得开发者能够更高效地构建可维护、可复用的用户界面。
- React 与其他前端框架的对比(Vue、Angular) React、Vue 和 Angular 都是流行的前端框架,它们各自有不同的设计理念和使用场景。React 强调组件化和虚拟 DOM,Vue 提供了更灵活的模板...
- React 是什么? React 是一个由 Facebook 开发的用于构建用户界面的 JavaScript 库。它通过组件化和声明式编程简化了复杂界面的开发,适用于构建交互丰富的单...
- useRef、useMemo、useCallback useRef、useMemo 和 useCallback 是 React 中常用的性能优化 Hooks,帮助管理引用、避免不必要的重新渲染和计算。
- 自定义 Hook 的创建与使用 自定义 Hook 是 React 中的一种机制,用于提取和复用组件逻辑。它可以将多个组件中共享的逻辑提取到独立的函数中,从而实现代码复用。
- Hook 规则与注意事项 在使用 React Hook 时,需要遵循一些规则和注意事项。了解这些规则可以帮助你避免常见的错误和性能问题,确保应用程序的稳定性和可维护性。