기타 공부
React의 Hook (useState, useEffect) 첫 걸음
Justin P
2022. 6. 10. 06:04
import React, {useState} from 'react';
import Greeting from './components/Greeting';
function App() {
const [isCreated, setIsCreated] = useState(false);
return (
<div className="App">
<button onClick={() => {
setIsCreated(isCreated ? false:true)
}}>컴포넌트 생성/제거</button>
{isCreated && <Greeting />}
</div>
);
}
export default App;
import React, {useEffect} from 'react';
function Greeting () {
useEffect(() => {
console.log("컴포넌트가 생성되었습니다.")
return () => {
console.log("컴포넌트가 소멸되었습니다.")
}
}, []);
return <h1>안녕하세요.</h1>
}
export default Greeting;
Hook 중 effect와 state에 대해서 기초적인 실험을 해보고 있다.
실행해보면, "컴포넌트 생성/제거" 버튼을 누를때마다 컴포넌트가 생성/소멸 되면서 "안녕하세요"가 나타났다 사라졌다 한다. 물론 개발자도구를 열어보면 "컴포넌트가 생성되었습니다" 와 "소멸되었습니다"가 번갈아가면서 찍힌다.
useEffect의 생김새는 useEffect(변경을 감지했을 때 실행할 함수, 변경을 감지할 변수들의 배열) 라고 할 수 있는데,
useEffect(함수, []) 처럼 빈 배열을 넣어주면 컴포넌트가 처음 생성되었을때(1), 그리고 소멸될때(2) 실행된다. 매우 유용하게 쓰일 것만 같은데 빨리 써보고 싶다.
{isCreated && } 을 써서 true일때만 컴포넌트를 쓰는 것도 익숙해지고 싶은 재미있는 표현방식.