-
React의 Hook (useState, useEffect) 첫 걸음기타 공부 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일때만 컴포넌트를 쓰는 것도 익숙해지고 싶은 재미있는 표현방식.
'기타 공부' 카테고리의 다른 글
사용자 인증, 회원가입, 그리고 Firebase (0) 2024.01.02 .env 파일에서 API key 관리하던 중 에러가..? (1) 2023.12.28 URL 파라미터 vs URL 변화 없이 상태관리? (0) 2023.12.19 JSON이란? JSON은 문자열인가? 객체인가? (0) 2023.08.12 CRUD 연습 중에 발견한 async, await 용도 (0) 2022.05.22