博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react hook - useEffect详解
阅读量:4098 次
发布时间:2019-05-25

本文共 924 字,大约阅读时间需要 3 分钟。

useEffect使用时有以下4种情况

  • 1、不传递
    useEffect不传递第二个参数会导致每次渲染都会运行useEffect。然后,当它运行时,它获取数据并更新状态。然后,一旦状态更新,组件将重新呈现,这将再次触发useEffect,这就是问题所在。
//1  useEffect(()=>{
console.log(props.number) setNumber(props.number) }) //所有更新都执行
  • 2、传递空数组
//2  useEffect(()=>{
console.log(props) },[]) //仅在挂载和卸载的时候执行
  • 3、传递一个值
//3  useEffect(()=>{
console.log(count) },[count]) //count更新时执行
  • 4、传递多个
//4const Asynchronous : React.FC
=({
number})=>{
const [number2,setNumber2] = useState(number); useEffect(()=>{
console.log(number) setNumber2(number) },[number,setNumber2]) //监听props对象number的更改 //setNumber2是useState返回的setter,所以不会在每次渲染时重新创建它,因此effect只会运行一次 }

5、传递props的对象 传递的useState返回的setter

6、return 方法

const timer = setInterval(() => {
setCount(count + 1) }, 1000) // useEffect方法的第一个参数是一个函数,函数可以return一个方法,这个方法就是在组件销毁的时候会被调用 useEffect(() => {
return () => {
clearInterval(timer) } }, [])

转载地址:http://ybqii.baihongyu.com/

你可能感兴趣的文章
Koa 2 初体验(二)
查看>>
Koa2框架原理解析和实现
查看>>
vue源码系列文章good
查看>>
你不知道的Virtual DOM
查看>>
VUE面试题总结
查看>>
【TINY4412】U-BOOT移植笔记:(7)SDRAM驱动
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
【Unity】微信登录后将头像存为bytes,将bytes读取成sprite图片
查看>>
【Unity】使用GPS定位经纬度
查看>>
如何高效学习动态规划?
查看>>
动态规划法(六)鸡蛋掉落问题(一)
查看>>
算法数据结构 思维导图学习系列(1)- 数据结构 8种数据结构 数组(Array)链表(Linked List)队列(Queue)栈(Stack)树(Tree)散列表(Hash)堆(Heap)图
查看>>
【机器学习】机器学习系统SysML 阅读表
查看>>
最小费用流 Bellman-Ford与Dijkstra 模板
查看>>
实现高性能纠删码引擎 | 纠删码技术详解(下)
查看>>
scala(1)----windows环境下安装scala以及idea开发环境下配置scala
查看>>
zookeeper(3)---zookeeper API的简单使用(增删改查操作)
查看>>
zookeeper(4)---监听器Watcher
查看>>