React에서는 Side Effect는 Effect Hook
을 통해서 관리한다.
useEffrct
의 첫번째 인자는 side effect가 일어날때 실행시키고 싶은 함수를 입력한다.
두번째 인자는 첫번째 인자에서 실행 시키고자 했던 함수를 내가 원하는 때에 실행하고 싶을때를 넣어주는 조건이 담긴 배열이다. 이 배열은 종속성 배열이라고 부른다.
useEffect(함수, [종속성1, 종속성2, ...])
useEffect(함수, [])
useEffect(함수)
useEffect
를 이용하면 더미데이터 대신 fetch API를 이용해 데이터를 가져올 수 있다.
useEffect(() => {
fetch(`http://서버주소/proverbs?q=${filter}`)
.then(resp => resp.json())
.then(result => {
setProverbs(result); // fetch를 이용해 서버에서 데이터를 가져와 setProverbs라는 함수의 매개변수로 넣어 사용할 수 있다.
}, [filter]);