-
React - Basic HooksReact/Hooks 2021. 6. 7. 00:47
- useState
- state를 대체
- useState를 사용할 때 상태의 기본값을 파라미터로 넣어서 호출
- 함수를 호출하면 배열이 반환
- 첫번째 요소는 현재 상태, 두번째 요소는 Setter 함수
import React, { useState } from 'react'; export default function Example() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}>Click me</button> </div> ); }
- useEffect
- LifeCycle 대체
- componentDidMount / componentDidUpdate / componentWillUnmount
- componentDidMount / componentDidUpdate / componentWillUnmount
- useEffect 첫번째 매개변수
- 렌더링 이후 호출되는 함수
- 렌더링 이후 호출되는 함수
- useEffect 두번째 매개변수
- 미 선언 시, 렌더링 할 때마다 useEffect 첫번째 매개변수에 선언된 함수 호출
- 빈 배열 선언 시, 최초 한번만 useEffect 첫번째 매개변수에 선언된 함수 호출
- 배열 선언 및 useState에서 관리하는 변수 설정 시, 해당 state가 업데이트 될 때마다 useEffect 첫번째 매겨변수에 선언된 함수 호출
- cleanup
- useEffect 첫번째 매개변수 안에서 return 함수 선언
- 컴포넌트가 제거되기 전에 호출(componentWillUnmount)
- 컴포넌트가 state가 변경되어 컴포넌트가 업데이트 되기 전에 호출
- useEffect 첫번째 매개변수 안에서 return 함수 선언
- LifeCycle 대체
import React, { useState, useEffect } from 'react'; export default function Example() { const [count, setCount] = useState(0); useEffect(() => { console.log('componentDidMount'); return () => { // cleanup // componentWillUnmount console.log('componentWillUnmount'); }; }, []); useEffect(() => { console.log(`componentDidMount & componentDidUpdate by count ${count}`); return () => { // cleanup console.log(`cleanup by count ${count}`); }; }, [count]); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}>Click me</button> </div> ); }
[ 참고자료 ]
https://rinae.dev/posts/a-complete-guide-to-useeffect-ko
'React > Hooks' 카테고리의 다른 글
react - Additional Hooks(1) : useReducer (0) 2021.06.07 - useState