이벤트 수신 및 이벤트 핸들러로 작업하기
함수가 이벤트에 의해 트리거 된다면 이름 뒤에 Handler를 붙이는게 좋다.
우리가 직접 호출하는 함수가 아니라 이벤트 리스너에 첨부된 함수로
이벤트 발생 시 리액트가 호출하는 함수라는점을 명확히 알수 있다.
리액트는 처음 렌더될 때 모든 컴포넌트를 평가한다.
그리고 재평가 하지않는다 그러면 언제 재평가 하게 해줘야할까?
클릭하거나 변수의 값이 변경 되거나 하는 걸로 컴포넌틑 함수의 재실행이
트리거 되지 않는다.
왜? useState 훅의 예) setTitle 과같은 상태 업데이트 함수를 써야할까?
상태 업데이트 함수를 메모리에서 리액트에 의해 관리 되는데
이 상태 업데이트 함수를 호출하고 useState상태를 초기화한 컴포넌트 함수를 재실행한다.
setTitle 과 같은 상태 업데이트 함수를 쓴다는 건
새로운 값을 할당하고 싶고, 상태가 있는 해당 컴포넌트를 재평가 해야한다.
그러면 리액트는 해당 컴포넌트 함수를 다시 실행하고 JSX코드도 다시 평가한다.
바로 바뀌지 않고 상태 업데이트를 예약 한다.-> 어느 시점에서 될까나?
상태는 컴포넌트 인스턴스별로 구별된다.
useState는 처음 실행 될때만 인자의 초기값을 넣어주고 다음 상태가 업데이트 된 후
코드가 재평가 될 때는 새로운 값을 넣어준다.
상태 업데이트로 인한 코드 재평가 때 함수 컴포넌트 코드가 새로 실행된다.
반응형
'개발 > TIL' 카테고리의 다른 글
[오늘개발] 양방향 바인딩, 상태 위로 올리기, 파생/계산된 상태 (Derived State),비제어 & 제어 컴포넌트 (0) | 2023.09.03 |
---|---|
[오늘개발] 리액트 이전상태를 가지고 state 업데이트하기 (0) | 2023.09.03 |
[오늘개발] jsx 코드 변환, React.createElement() (0) | 2023.08.31 |
[오늘개발] 리액트 컴포지션(합성), 래퍼컴포넌트, props.children (0) | 2023.08.30 |
[오늘 개발] 구조 분해 할당, Props 개념 (0) | 2023.08.29 |