본문 바로가기
카테고리 없음

next router 심화

by 멈추지않아 2022. 3. 28.

오늘은 router 심화에 대해서 알아보겠습니다.

우선 우리가 페이지를 보여줄때 데이터를 가져와야될것이 있습니다. 하지만 이게 로딩 되지 않으면 데이터가 나오지 않는데 이것을 해결하기위해  데이터가 다 로딩되면 화면이뜨게 하는 것이 있습니다. 

next.js에서는 이것을getServerSideProps로해결합니다 이것을 알아  보겠습니다.

pages./ack.js

export default function index({ success }) {
  console.log(success);
  return "index2";
}
export async function getServerSideProps() {
  const success = await (await fetch(`https://api.themoviedb.org/3/`)).json();

  return {
    props: {
      success,
    },
  };
}

이렇게 하고 확인하면

이런식으로 success가 전달되서 콘솔에 찍히는것을 확인할수 있습니다.

이런식으로 async await로 데이터를 다받고 화면이 보이게 됩니다.

그럼 다음으로 ack/2312312이런 아무 숫자가 들어오고  페이지가 뜨는것을 해보겠습니다.

ack 폴더 안에 [id].js 생성

이렇게 하면 ack뒤에 오는 내용은 id라는 변수에 저장되어서 전달이 됩니다.

[id].js

export default function popo({ id }) {
  console.log(id);
  return <div>id</div>;
}
export function getServerSideProps({ params: { id } }) {
  return {
    props: {
      id,
    },
  };
}

아까 배운것을 활용해서 params안에 id를 꺼내서 전달해주고 찍어보면 주소 뒷부분이 나옵니다 한번 확인해보면

이런식으로 주소 뒷부분이 제대로 출력된것을 확인할수 있습니다.