jhpka's blog

리액트 useState 초기화

Admin User

초기값으로 할 때

useState(초기값)

이 들어가는데, 초기값이 함수의 실행결과이어야 하는 경우에

만약 함수가 aA 라면

[state, setState]= useState(aA())

이렇게 하는게 아닌, useState(()=>aA())

로 전달하면 리액트에서 이 useState를 쓰는 컴포넌트가 리렌더링될 때 이 함수실행을 다시 하지 않음

초기값만 쓸 건데 다시 함수를 재 실행할 필요도 없기 때문

그리고

리액트에서 state로 함수가 오면, '이건 한번만 실행하라는 의미로 이렇게 왔구나' 해서

이 컴포넌트가 처음에 렌더링됐을 때만 이 함수를 실행해서 결과값을 상태로 받고(즉, 함수의 결과값이 state의 타입으로 결정),

리렌더링시에는 다시 이 함수를 재 실행하지 않게 할 수 있음.

댓글을 불러오는 중...