1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import React, { useState, useEffect } from "react" ; import ReactDOM from "react-dom" ; function App() { const [visible,setVisible] = useState( true ) return ( <div> <button onClick = {()=>{setVisible(!visible)}}> show</button> {visible ? <A></A>: "" } </div> ); } const A = props =>{ const [n,setN] = useState(0) useEffect(()=>{ console.log( '我执行了' ) return ()=>{ console.log( 'return执行了' ) } },[n]) return ( <div> <button onClick = {()=>{setN(n+1)}}> +1</button> <div>111</div> </div> ); } const rootElement = document.getElementById( "root" ); ReactDOM.render(<App />, rootElement); |
组件 A 首次渲染后, 只执行 console.log('我执行了')
组件 A 被销毁前,只执行 console.log('return执行了')
组件再次被渲染后,同样只执行 console.log('我执行了')
组件再次被销毁前,同样只执行 console.log('return执行了')
当组件 A 内,使用 useState 创建的变量,发生变化时,会造成重新渲染,简单理解为就是函数A重新执行,导致组件A经历销毁,重新渲染两个步骤,即先执行 console.log('return执行了') ,之后再 执行 console.log('我执行了')
可以得出结论,return 只在组件被销毁之前才会执行,常用于清理以下遗留垃圾,比如订阅或计时器 ID 等占用资源的东西。
代码例子 : musing-paper-u1uuqp - CodeSandbox
示例用途:react hook 中useEffect返回的函数是在什么时候执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2020-07-14 webpack源码讲解教程
2020-07-14 Vue.js源码解析教程(某课网)(含Vue3.0源码分析)
2020-07-14 encodeURI()和encodeURIComponent() 区别