1分钟看懂React的那些Hooks
目录
1分钟看懂React的那些Hook‘s
一、useEffect的五指山
1.执行时机:组件初始化,组件更新(组件内state变化)
useEffect(() => {
})
2.执行时机:组件初始化
useEffect(() => {
},[])
3.执行时机:组件初始化,依赖的状态发生变化(X可多个)
useEffect(() => {
},[X])
4.执行时机:组件卸载
useEffect(() => {
return ()=>{
console.log(组件卸载)
}
})
5.执行时机:组件卸载,依赖的状态发生变化(X可多个)
useEffect(() => {
//这里的X是新值
return ()=>{
console.log(组件卸载)
//这里的X是旧值(上一次状态)
}
},[X])
二、useLayoutEffect
0. react的commit意在把更新提交给浏览器,commit阶段: js修改DOM前,JS开始修改DOM,JS修改DOM后。commit阶段是同步的
1.浏览器会在JS修改DOM后开始渲染。
2.浏览器渲染完毕useEffect执行,但是useEffect是在JS操作DOM前调用。
3.JS修改DOM之后useLayoutEffect执行。
使用场景: 在一些页面或样式需要默认值的时候,因为useEffect在页面渲染后执行,会导致页面重新渲染,此刻需要搬出useLayoutEffect,因为他在JS修改完DOM就开始执行了,然后再渲染页面的时候,就会给用户更好的体验。
三、useState
const [count,setCount] = useState(0)
const [count,setCount] = useState( ()=>{ return('张三')} )
//使用 展示
<>{count}</>
//修改
() => {
setCount(count + 1)
console.log(count) //函数执行后,打印依然是0 (因为组件更新是异步的)
}