useEffect()

useEffect()

코드를 한 번만 호출하는 함수

import{useEffect} from "react";

useEffect(한 번만 실행하고 싶은 코드, 배열);

ex)

const [counter, setValue] = useState(0);
const onClick = () => setValue((prev) => prev + 1);
console.log("I run all the time");
useEffect(() => {
  console.log("CALL THE API...");
}, []);

결과(console)

title

click할 때 마다 "I run all the time"은 실행되지만, "CALL THE API...."는 처음 한 번만 실행됨


useEffect(2)

[배열]안에 적용하고자 하는 변수를 지정할 수 있다.

useEffect(()=> {
    console.log("");
},[keyword]);

keyword가 onChange에의해 변할 때 마다 코드를 실행한다. 배열이 비어있는 경우에는 처음 한 번만 실행된다.

ex

 useEffect(() => {
    console.log("I run only once.");
  }, []);
  useEffect(() => {
    console.log("I run when 'keyword' changes.");
  }, [keyword]);
  useEffect(() => {
    console.log("I run when 'counter' changes.");
  }, [counter]);
  useEffect(() => {
    console.log("I run when keyword & counter change");
  }, [keyword, counter]);

result

useEffect

1,2,3,4 줄은 시작과 동시에 한 번씩 실행된 모습이며, 5,6 줄은 search칸에 입력했더니 실행된 모습이다.