• 本文基于之前创建的react-app脚手架文件
  • App.tsx
import React from 'react'function App() {const [count, setCount] = React.useState(5)console.log('1')React.useEffect(() => {// 实现count每一秒-1console.log('2')let timer = setInterval(() => {if (count > 0) {// console.log('count:', count)setCount(count - 1)}}, 1000)return () => {clearInterval(timer)}}, [count])console.log('3')return (<div className="App"><p>Hello,Dust</p><span>count:{count}</span></div>)
}export default App
  • 执行结果:
  • 注意观察每个console.log的位置,执行结果是实现一个5s的倒计时,每秒console里都会打印出"1,3,2"
  • 说明useEffect的内容是最后执行,先执行之前之后的内容,这样也好理解"副作用"这个定义.
简单一点:去掉倒计时功能
import React from 'react'function App() {console.log('1')React.useEffect(() => {console.log('2')}, [])console.log('3')return (<div className="App"><p>Hello,Dust</p></div>)
}export default App
  • 执行结果:(是不是直观多了)

感受hook里useEffect的执行顺序,hook倒计时相关推荐

  1. 在Angular单个的单元测试里,调用多次detectChange,会重复执行ngAfterViewInit hook吗

    我的单元测试源代码: import { Component } from '@angular/core'; import { waitForAsync, ComponentFixture, TestB ...

  2. 【pytest】Hook 方法之 pytest_collection_modifyitems:修改测试用例执行顺序

    pytest_collection_modifyitems 是在用例收集完毕之后被调用,可以用来调整测试用例执行顺序: 它有三个参数,分别是: session:会话对象: config:配置对象: i ...

  3. 在React Hook里使用history.push跳转

    在React Hook里使用history.push跳转 react hook里用不了this.props.history的解决方法 首先引入 import { useHistory } from ' ...

  4. 关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题

    关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题 Hook 是 PyTorch 中一个十分有用的特性.利用它,我们可以不必改变网络输入输出的结构, ...

  5. MATLAB多个for循环嵌套的执行顺序、如何将生成的数据存放在一个向量或矩阵里?

    MATLAB中多个for循环嵌套的执行顺序: 当有两个for循环时,先执行一次外部for循环,再将内部循环全部执行. 当有三个for循环时,先执行一次最外部for循环,再执行一次第二层for循环,最后 ...

  6. uniapp里的mounted_uni-app 生命周期函数执行顺序

    {{message}} 点击 import { mapState, mapMutations } from 'vuex'; var key = 0; export default { data() { ...

  7. 排队器拦截_过滤器(Filter)和拦截器(Interceptor)的执行顺序和区别

    首先建立一个SpringBoot工程,增加一个IndexController供测试使用. @Controller public class IndexController { @GetMapping( ...

  8. php扩展实现hook,ThinkPHP3.2 扩展(钩子,HOOK)

    Thinkphp 执行流程 /index.php ->require './ThinkPHP/ThinkPHP.php'; /ThinkPHP/ThinkPHP.php ->require ...

  9. main线程 子线程 顺序_面试官:线程池如何按照core、max、queue的执行顺序去执行?详解...

    前言 这是一个真实的面试题. 前几天一个朋友在群里分享了他刚刚面试候选者时问的问题:"线程池如何按照core.max.queue的执行循序去执行?". 我们都知道线程池中代码执行顺 ...

最新文章

  1. java 读出数字声音_【求助】已经计算出的数字结果,想用声音播放出来。怎么弄!!!...
  2. mysql 数据迁移java_使用jdk进行数据迁移(sqlite迁移mysql)
  3. BDOC generated after customer product id is changed in CRM - CUST_MAT_INF
  4. 如何使用Java keytool命令行创建一个自签名证书
  5. 四大基本反应类型的关系_如何进入四大的咨询部门?
  6. 匿名内部类 可以访问外部类_Java——内部类详解
  7. [Python] L1-001. Hello World-PAT团体程序设计天梯赛GPLT
  8. python2.7初学(〇)
  9. 清明上河图对计算机技术的启发,《清明上河图》鉴定故事的启示
  10. Java 弱密码校验判断处理
  11. Apache安装成功,测试时无法跳出It works!页面
  12. 推广微信公众号最基本的渠道
  13. 完全激活office2007
  14. nodejs 加密压缩文件,解密解压文件
  15. 基于代理的西亚城市动态模拟:难民的影响
  16. 怎样将excel表格导入天正_怎样把excel表格转换成cad读取
  17. 整车电源状态 K15 KL30 KL31
  18. Python读取指定文件夹中的所有图片并保存
  19. 电子发票多页合并打印在一张纸上
  20. unity 通过audio mixer 来控制音频的大小

热门文章

  1. docker报错:driver failed programming external connectivity on endpoint, iptables:No chain by that name
  2. 2022-2028年中国科技馆行业研究及前瞻分析报告
  3. 2022-2028年中国机制砂石行业投资分析及前景预测报告
  4. 【运维学习笔记】生命不息,搞事开始。。。
  5. scheduled sampling_seq2seq
  6. LeetCode简单题之数组中两元素的最大乘积
  7. CVPR2020:点云分类的自动放大框架PointAugment
  8. 2021年大数据ELK(三):Lucene全文检索库介绍
  9. python 实现可以一直输入内容直到某个特定的值退出循环的操作
  10. Android TextView 在strings 里面 实现换行