useState
상태 설정하기 위해서 기존에는 클래스 컴포넌트를 사용해야 했지만 훅의 등장으로 함수형 컴포넌트에서도 상태를 가질 수 있다.
1. useState 사용하기
하나의 인자를 전달 받는 함수이다.
배열을 반환한다. (구조 분해 할당하여 사용하면 편하다.)
반환된 배열의 첫 번째 아이템은 상태(state), 두 번째 아이템은 상태를 업데이트 하는 함수이다.
useState()은 배열을 반환한다. 그렇기 때문에 바로 배열로 구조분해 할당하면 사용하기 편하다. 반환된 배열의 첫 번째 아이템은 상태(state), 두 번째 아이템은 상태를 업데이트 하는 함수이다.
상태를 업데이트 하는 함수는 일반적으로 set*
접두사를 붙여 사용한다.
하나의 상태(state)를 가지는 useState()를 사용했다.
하지만 복잡한 객체 문법을 사용해서 여러 상태를 가지도록 할 수 있다.
2. lazy initializer
useState의 초기 값을 일반적인 원시 데이터 값이 아닌 함수로 설정할 수 있다. 이때 유의해야 할 점은 함수 컴포넌트가 렌더링 될 때 사용하지 않는 함수도 실행이 된다는 점이다.
그래서 함수 컴포넌트 초기 생성 시, 단 한 번만 함수가 실행되도록 콜백 함수를 설정하는데 이를 지연된 초기화(lazy initializer)라고 한다.
정리하자면 컴포넌트가 렌더링 될 때마다 함수가 실행되어 성능에 영향을 주는 것을 방지하기 위해서 지연된 초기화(함수)를 사용한다. 이는 함수 컴포넌트 초기 생성 시 한 번만 실행된다.
2.1 참고
Last updated