感受hook里useEffect的执行顺序,hook倒计时
- 本文基于之前创建的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倒计时相关推荐
- 在Angular单个的单元测试里,调用多次detectChange,会重复执行ngAfterViewInit hook吗
我的单元测试源代码: import { Component } from '@angular/core'; import { waitForAsync, ComponentFixture, TestB ...
- 【pytest】Hook 方法之 pytest_collection_modifyitems:修改测试用例执行顺序
pytest_collection_modifyitems 是在用例收集完毕之后被调用,可以用来调整测试用例执行顺序: 它有三个参数,分别是: session:会话对象: config:配置对象: i ...
- 在React Hook里使用history.push跳转
在React Hook里使用history.push跳转 react hook里用不了this.props.history的解决方法 首先引入 import { useHistory } from ' ...
- 关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题
关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题 Hook 是 PyTorch 中一个十分有用的特性.利用它,我们可以不必改变网络输入输出的结构, ...
- MATLAB多个for循环嵌套的执行顺序、如何将生成的数据存放在一个向量或矩阵里?
MATLAB中多个for循环嵌套的执行顺序: 当有两个for循环时,先执行一次外部for循环,再将内部循环全部执行. 当有三个for循环时,先执行一次最外部for循环,再执行一次第二层for循环,最后 ...
- uniapp里的mounted_uni-app 生命周期函数执行顺序
{{message}} 点击 import { mapState, mapMutations } from 'vuex'; var key = 0; export default { data() { ...
- 排队器拦截_过滤器(Filter)和拦截器(Interceptor)的执行顺序和区别
首先建立一个SpringBoot工程,增加一个IndexController供测试使用. @Controller public class IndexController { @GetMapping( ...
- php扩展实现hook,ThinkPHP3.2 扩展(钩子,HOOK)
Thinkphp 执行流程 /index.php ->require './ThinkPHP/ThinkPHP.php'; /ThinkPHP/ThinkPHP.php ->require ...
- main线程 子线程 顺序_面试官:线程池如何按照core、max、queue的执行顺序去执行?详解...
前言 这是一个真实的面试题. 前几天一个朋友在群里分享了他刚刚面试候选者时问的问题:"线程池如何按照core.max.queue的执行循序去执行?". 我们都知道线程池中代码执行顺 ...
最新文章
- java 读出数字声音_【求助】已经计算出的数字结果,想用声音播放出来。怎么弄!!!...
- mysql 数据迁移java_使用jdk进行数据迁移(sqlite迁移mysql)
- BDOC generated after customer product id is changed in CRM - CUST_MAT_INF
- 如何使用Java keytool命令行创建一个自签名证书
- 四大基本反应类型的关系_如何进入四大的咨询部门?
- 匿名内部类 可以访问外部类_Java——内部类详解
- [Python] L1-001. Hello World-PAT团体程序设计天梯赛GPLT
- python2.7初学(〇)
- 清明上河图对计算机技术的启发,《清明上河图》鉴定故事的启示
- Java 弱密码校验判断处理
- Apache安装成功,测试时无法跳出It works!页面
- 推广微信公众号最基本的渠道
- 完全激活office2007
- nodejs 加密压缩文件,解密解压文件
- 基于代理的西亚城市动态模拟:难民的影响
- 怎样将excel表格导入天正_怎样把excel表格转换成cad读取
- 整车电源状态 K15 KL30 KL31
- Python读取指定文件夹中的所有图片并保存
- 电子发票多页合并打印在一张纸上
- unity 通过audio mixer 来控制音频的大小
热门文章
- docker报错:driver failed programming external connectivity on endpoint, iptables:No chain by that name
- 2022-2028年中国科技馆行业研究及前瞻分析报告
- 2022-2028年中国机制砂石行业投资分析及前景预测报告
- 【运维学习笔记】生命不息,搞事开始。。。
- scheduled sampling_seq2seq
- LeetCode简单题之数组中两元素的最大乘积
- CVPR2020:点云分类的自动放大框架PointAugment
- 2021年大数据ELK(三):Lucene全文检索库介绍
- python 实现可以一直输入内容直到某个特定的值退出循环的操作
- Android TextView 在strings 里面 实现换行