라우터(router)객체
란 페이지 이동과 관련된 기능을 가지고 있는객체
다.
이 객체를 사용해서 A 페이지에서 B 페이지로 이동할 때,"B 페이지로 라우팅한다"
고 말한다.
import Router from 'next/router'
export default function Routing() {
const handleClickPathname = () => {
const pathname = Router.pathname
alert(pathname)
}
const handleClickAsPath = () => {
const asPath = Router.asPath
alert(asPath)
}
const handleClickBack = () => {
Router.back()
}
const handleClickPush = () => {
Router.push('/')
}
const handleClickReload = () => {
Router.reload()
}
const handleClickReplace = () => {
Router.replace('/')
}
return (
<>
<button onClick={handleClickPathname}>현재 위치 주소: Router.pathname</button><br/>
<button onClick={handleClickAsPath}>현재 위치 주소: Router.asPath</button><br/>
<button onClick={handleClickBack}>뒤로가기 버튼: Router.back()</button><br/>
<button onClick={handleClickPush}>현재 페이지에서, 다른 페이지로 이동: Router.push()</button><br/>
<button onClick={handleClickReload}>새로고침: Router.reload()</button><br/>
<button onClick={handleClickReplace}>현재 페이지 삭제 후, 다른 페이지로 이동: Router.replace()</button><br/>
</>
)
}
자주 사용하는 라우터 객체 기능.
참고문헌: https://nextjs.org/docs/api-reference/next/router
/login 페이지는 누가 언제 접속해도 항상 로그인 페이지가 나온다.
이러한 페이지로 이동하는 것을 "정적 라우팅을 한다"
고 한다.
반면 게시판의 상세보기와 같은 경우, 글 번호에 따라서 주소가 변경된다.
/board/1 ⇒ 1번 게시글 상세보기 페이지
/board/2 ⇒ 2번 게시글 상세보기 페이지
/board/3 ⇒ 3번 게시글 상세보기 페이지
/board/4 ⇒ 4번 게시글 상세보기 페이지
... ...
이러한 방식으로 페이지를 이동하는 것을 "동적 라우팅을 한다"
고 한다.
// graphql 요청에 필요한 도구 불러오기
import { useQuery, gql } from '@apollo/client'
// graphql 코드 생성
const FETCH_PROFILE = gql`
query fetchProfile($name: String){
fetchBoard(name: $name){
title
contents
}
}
`
// graphql 코드를 실행하기 위한 query 생성과 생성된 query의 실행(자동으로 실행됩니다)
const { data } = useQuery(FETCH_PROFILE)
// 최종 결과를 HTML에 보여주기
<div>
이름: <span>{data && data.fetchProfile.name}</span>
나이: <span>{data && data.fetchProfile.age}</span>
학교: <span>{data && data.fetchProfile.school}</span>
</div>
graphql을 사용하는데 도움을 주는 크롬 도구가 있다.
추후 게재