useEffect 可以接收两个参数,第一个参数是回调函数,回调函数的返回值是销毁时调用,第二个参数是依赖项,
依赖项是[],useEffect只执行一次
//使用useEffect之前要先引入
import React, { useEffect,useState } from 'react'
import ReactDOM from 'react-dom'
function App(){
const [n,setN] = useState(0);
const add=()=>{
setN(i=>i+1);
};
// 第一次渲染,只执行这一次,[]要在第二个参数
useEffect(()=>{
console.log('这是第一次渲染执行这句话');
},[]);
return(
n:{n}
)
}
ReactDOM.render( ,document.getElementById('root'));
依赖项不写的话,则每次渲染的时候都会执行一次
useEffect(()=>{
console.log('这是第一次渲染执行这句话');
});
依赖项的数组里面有值,依赖项的数据每发生一次变化,则会执行一次,依赖项是基本数据,只要基本数据发生变化就可以,依赖项是数组或者对象,进行的是浅比较,需要数组或者对象的引用地址发生变化才可以执行
useEffect(()=>{
console.log('n变化了');
},[n])
useEffect 和useLayoutEffect的区别