[React] React 중급 - useState를 활용한 Tab 제목 함수 구현하기

Hyo Kyun Lee·2021년 8월 24일
0

React

목록 보기
31/41

1. customized function - useTitle

useEffect를 활용하여 문서 제목을 업데이트하는 함수를 구현한다.

2-1. 함수 구현하기

본 함수는 화면구현이 완료된 상태에서 진행하며, 화면을 구현하기보다는 함수를 구현하는데 집중한다.

  • App function에서 최초 rendering 되면서, useTitle 함수를 실행하고 문서제목을 바꾸는 구조로 logic을 구현한다.
  • 이를 위해 먼저 App function 내부에 useTitle 함수를 호출하는 구조를 만든다.
  • ※ 함수 내부에 useEffect가 있기 때문에 rendering 직후 호출된다.

  • updateTitle에 useTitle 함수를 호출하여 문서제목을 바꾸는 logic을 구현한다.
  • 최초 문자열을 받아 이를 상태관리하기위해 useState의 인자로 전달해준다.
  • 그 후 화면이 rendering 된 후에 문서제목을 바꾸도록 내부 logic을 구현한다.

  • 최초 "Ready" 문자열을 받아 문서 제목이 바뀌었는지 확인한다.

2-2. 유의사항

updateTitle 자체는 함수가 아니지만, 호출해주는 함수로부터 함수를 return 받기 때문에 updateTitle과 인자를 전달하여 함수를 바로 호출할 수 있다.

  • 최초 rendering 후에 Ready에서 Home으로 문서 제목을 바꾸도록 setTimeout을 구현한다.
  • setTimeout은 별도의 const declaring이 필요없음을 유의한다.

updateTitle("Home") = setTitle("Home")

  • 구조적으로 updateTitle은 useTitle 함수를 호출하여 setTitle 함수를 반환하고 있기 때문에, updateTitle("Home") = setTitle("Home")과 같은 효과를 가진다.
  • 1초(1000ms) 후에 문서제목을 바꾸는 logic을 구현하며, 이때 updateTitle이나 useTitle 함수를 호출하여 제목을 변경할 수 있다.
  • ※ 단 updateTitle을 통한 호출을 할 경우 반드시 useTitle 함수의 return 값이 함수형태인 setTitle 형식으로 되어야 한다.

  • 문서 제목이 알맞게 변경되었는지 확인한다.

2-2. useEffect flow

  • ComponentDidMount (rendering 후 실행)
    화면이 rendering(DidMount)된 후 callback 함수가 호출되어 문서제목을 바꾼다.

  • ComponentDidUpdate (title 상태가 변경된 후 실행)
    setTimeout 실행으로 1초후 title이 바뀌면, 바뀐 상태를 반영하여 문서제목도 바뀐다.

0개의 댓글