동적 라우팅
next.js 에선 동적 라우팅을 할 수 있도록 하는 기능을 제공하고 있다.
동적으로 들어올 부분을 폴더를 대괄호에 이름을 지어주고 사용한다.
import { useQuery, gql } from "@apollo/client";
import { useRouter } from "next/router";
// 조회
// number 부분을 변수에 담아 사용
const FETCH_BOARD = gql`
query fetchBoard($number: Int) {
fetchBoard(number: $number) {
number
writer
title
contents
}
}
`;
export default function StaticRoutingMovedPage() {
// next.js의 라우터 사용
const router = useRouter();
const { data } = useQuery(FETCH_BOARD, {
// 변수로 받아오는 number
// 여기서 qqq 란 동적 라우팅을 위해 우리가 폴더 안에 만들었던 [qqq] 폴더의 이름을 뜻함
variables: {
number: Number(router.query.qqq),
},
});
console.log(data);
return (
<>
// router.query.qqq 안에 있는 텍스트 출력
<div>{router.query.qqq}번 게시글 이동이 완료되었습니다.</div>
<div>작성자: {data && data.fetchBoard?.writer}</div>
<div>제목: {data?.fetchBoard?.title}</div>
<div>내용: {data ? data.fetchBoard?.contents : "로딩중입니다."}</div>
</>
);
}
'비공개 > 강의 간단 정리(추후 복습하면서 수정)' 카테고리의 다른 글
[Section05-05] dynamic routing board mutation, try catch문을 사용한 에러 잡기 (0) | 2023.05.17 |
---|---|
[Section 05-03] static-routing-board-query (0) | 2023.05.07 |
[Section05-02] static-routing-board (0) | 2023.05.05 |
[Section05-01] static-routing (0) | 2023.05.05 |
[Section04-05] graphql-mutation-product (0) | 2023.05.05 |