#패스트캠퍼스 #패스트캠퍼스부트캠프 #프론트엔드프로젝트십

복습

useparam hook을 이용하여..

uselocation을 활용하여 현재 url정보를 가져올 수 있다.

검색페이지 구현을 할때는 navigate함수를 이용해서 다른 컴포넌트로 이동을 해주었다. 즉, search page 컴포넌트로 이동을 한다. spider이라는 text를 가져와서 the moviedb api에 요청을 주어야 하는데 얘를 가져올 때 url에 대한 정보를 가지고 있는 useLocation().search 프로퍼티 안에 있는 값이 바로 ?q=spiderman이었는데, 거기서 spiderman 부분만 가져오기 위해 사용했던 것이 urlsearchparams 였다.

Untitled

q에 대한 값을 get메소드로 얻어왔었다.

요청을보내고 그값을 state에 넣어주는 처리를 해주었다.

여기까지가 ui 부분이었고, 다음은

debounce

한글자마다 요청을 보내는 불필요한 로드가 추가될 수 있어서, 어느정도 시간이 지난후에 지금까지 타이핑 된 것으로 요청을 보낼 수 있도록 하기 위해서 debounce hook을 만들었다.

Untitled

state가 변할때 요청을 보내는 것으로 바꾸었는데, setTimeout에서 delay가 지난다음에 debounceValue로 업데이트가 된다. 그렇지 않으면..

<상세 페이지에서 영화 상세 정보 가져오기>

movie id가 locathost:3000/323으로 들어왔는데, useparams hooks를 이용해서 가져왔다. let {movieId}인 이유는 라우터에서 정의할 때 movieId로 정했기 때문에 똑같이 쓴다.

<모달창 외부 클릭시 모달창을 닫게 만드는 커스텀 훅스 생성>