web前端全系列 教程
1839个小节阅读:2244.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
传递数组作为 useEffect
的第二个可选参数,数组中可以设置要监听发生变化的数据,可以是一个也可以是多个,只要有一个元素发生变化,React 就会执行 effect。
useEffect(()=>{},[被监听的数据1,被监听的数据2])
xxxxxxxxxx
//只要组件需要更新,则下面的effect就会执行,大可不必
useEffect(() => {
console.log("执行了")
})
xxxxxxxxxx
useEffect(()=>{
console.log("执行了")
},[count])//当count发生变化时,才调用effect
xxxxxxxxxx
//CounterParent.js
import React, { useEffect, useState } from 'react'
import Counter from './Counter'
export default function CounterParent() {
const [id, setId] = useState()
return (
<div>
<button onClick={()=>setId('100')}>获取Id </button>
<Counter id={id}/>
</div>
)
}
xxxxxxxxxx
useEffect(()=>{
console.log(props.id)
if(props.id){
//使用id,比如发起网络请求等
}
},[props.id])
实时效果反馈
1.下列说法错误的是:
A useEffect
传递第二个参数为[]
,则effect只会执行一次
B useEffect
传递第二个参数为[x,y]
,则effect只会在x发生变化的时候执行
C useEffect
传递第二个参数为[x,y]
,则effect会在x或者y发生变化的时候执行
D useEffect
不传递第二个参数,则effect会在组件每次渲染的时候被执行
答案
1=>B