杭州倍世康 做网站,软件平台介绍,泰安市住房和城乡建设部网站,做app一定要做网站吗useEffect 是 React 中的一个钩子函数#xff0c;用于处理函数组件中的副作用操作#xff0c;如发送网络请求、订阅消息、手动修改 DOM 等。下面是 useEffect 的用法总结#xff1a;
基本用法
import React, { useState, useEffect } from react;function Example() {cons…useEffect 是 React 中的一个钩子函数用于处理函数组件中的副作用操作如发送网络请求、订阅消息、手动修改 DOM 等。下面是 useEffect 的用法总结
基本用法
import React, { useState, useEffect } from react;function Example() {const [count, setCount] useState(0);useEffect(() {// 在这里执行副作用操作,模拟console.log(useEffect executed);}, []); // 不传第二个参数每次组件状态更新都会执行// 传入第二个参数,是个空数组表示只在组件挂载时执行一次模拟 componentDidMount 组件挂载完成return (divpYou clicked {count} times/pbutton onClick{() setCount(count 1)}Click me/button/div);
}处理 cleanup
在组件卸载或者依赖项变化前执行清理操作以避免内存泄漏。
import React, { useState, useEffect } from react;function Example() {const [count, setCount] useState(0);useEffect(() {// 在这里执行副作用操作 ...console.log(useEffect executed);// 返回一个 清理函数,模拟 componentWillUnmount 组件卸载前清理,在组件卸载或者依赖项变化前执行清理操作return () {console.log(Cleanup executed);};}, []); // 传入空数组表示只在组件挂载和卸载时执行return (divpYou clicked {count} times/pbutton onClick{() setCount(count 1)}Click me/button/div);
}处理依赖项变化
当依赖项变化时重新执行副作用操作。
import React, { useState, useEffect } from react;function Example() {const [count, setCount] useState(0);const [name, setName] useState();useEffect(() {// 在这里执行副作用操作,模拟 componentDidUpdate (组件完成更新)console.log(Hello, ${name}! You clicked ${count} times.);}, [count, name]); // 当 count 或 name 变化时重新执行副作用操作return (divpYou clicked {count} times/pbutton onClick{() setCount(count 1)}Click me/buttoninput typetext value{name} onChange{e setName(e.target.value)} //div);
}注意
如果不传递第二个参数那么每次组件重新渲染时都会执行副作用操作。如果传递空数组作为第二个参数那么只在组件挂载时执行一次副作用操作。如果传递了依赖项数组那么只有当依赖项发生变化时才会重新执行副作用操作。传递空数组作为第二个参数可以返回一个清理函数在清理函数可以访问到当前的 state 和 props但是不能修改它们。