๋ผ์ฐํ
์ ํ์ด์ง ์ด๋ ๊ธฐ๋ฅ์ด๋ค. ๋ง์ฝ a ํ์ด์ง์์ b ํ์ด์ง๋ก ์ด๋ํ๋ค๋ฉด, "b ํ์ด์ง๋ก ๋ผ์ฐํ
ํ๋ค"๋ผ๊ณ ๋งํ๋ค.
๋ผ์ฐํ ์ React ๋ฟ๋ง ์๋๋ผ ์ฌ๋ฌ ๋ถ์ผ์์ ์ฐ์ด๋ ๊ฐ๋ ์ด๋ค. ๋ฐ๋ผ์ ๋ผ์ฐํ ์ ๋ํด ๊ฒ์ํด๋ณด๋ ค๋ฉด "๋ฆฌ์กํธ ๋ผ์ฐํ "์ด๋ผ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ๊ฒ์ํด์ผ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ ๊ฒ์ด๋ค.
๋ผ์ฐํฐ ๊ธฐ๋ฅ์ ์ด์ฉํด์ ํ์ด์ง๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
const router = useRouter() router.push("์ด๋ํ ํ์ด์ง")
router.push
๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํด์ค ์ ์๋ค.
import { useRouter } from "next/router"; //next.js์์ router ์ ๊ณต
export default function StaticRoutingPage() {
const router = useRouter();
//์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์
const onClickMove = () => {
router.push("/section05/05-01-static-routing-moved");
};
return <button onClick={onClickMove}>ํ์ด์ง ์ด๋ํ๊ธฐ!!!</button>;
}
Router๋ push์ธ์ ๋ค๋ฅธ ๋งค์๋๋ ๋ง์ด ์๋ค.
Router method: https://nextjs.org/docs/api-reference/next/router
๊ฒ์ํ ๋ง๋ค๊ธฐ ์ค์ต
์ ํ๋ฉด์ ๊ฒ์๊ธ์ ์์ฑํด์ ๋ฑ๋กํ๋ ํ์ด์ง๋ฅผ ๋ง๋ค์์๋ค. ์ด์ routing์ ํ์ฉํด์ ๋ฑ๋กํ ๊ฒ์๊ธ์ ์กฐํํ๋ ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ ๋ฑ๋ก ํ์ด์ง์์ ์กฐํ ํ์ด์ง๋ก ์ด๋ํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด์ค ์ ์๊ฒ ๋์๋ค!! ์ด๋ฅผ ์ํด์ ๋ฃ์ด์ผ ํ๋ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
const {data} = useQuery(FETCH_BOARD)
useQuery๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์๊ธ์ ์กฐํํ ๊ฒฐ๊ณผ๊ฐ data์ ๋ค์ด์ค๊ฒ ๋๋ค.
์ ์ ๋ผ์ฐํ (static routing): ๋ก๊ทธ์ธ ํ์ด์ง์ฒ๋ผ ๋๊ฐ ์ธ์ ์ ์ํด๋ ํญ์ ๋์ค๋ ํ์ด์ง๋ก์ ์ด๋
๋์ ๋ผ์ฐํ (dynamic routing): ํ๋์ ํ์ด์ง๊ฐ ๋ค์ด๋๋ฏนํ๊ฒ ์ฌ๋ฌ ์ผ์ ์ฒ๋ฆฌ
์์ ์ด๋ ํ ๊ฒ์๊ธ์ ์์ฑํ๋ฉด, ๊ทธ ๊ฒ์๊ธ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ํ์ด์ง๋ก ์ด๋ํ๋๋ก ๋ง๋ค์์๋ค. ํ์ง๋ง ๊ฒ์๊ธ์ ๊ฐฏ์๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ด๊ฒ๋ค์ ์ผ์ผ์ด ์กฐํํ๋ ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ค ์๋ ์์ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๊ฒ๋ค์ ์ด๋ป๊ฒ ํตํฉํ ์ ์์๊น?
๋ฐ๋ก ๋ณ์
๋ฅผ ๋์
ํ๋ฉด ๋๋ค! next.js ์์๋ ๋์ ๋ผ์ฐํ
์ ์ ๊ณตํ๊ณ , ๋์ ๋ผ์ฐํ
์ ์ด์ฉํด์ ์๋ง์ ๋ฐ์ดํฐ๋ค์ ์กฐํํ ์ ์๋ค.
๋ณ์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
์์ ํด๋ ๊ตฌ์กฐ์ ๊ฐ์ด ํด๋ ์ด๋ฆ์ ํ์ ํด๋๋ก [boardId] ํด๋๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ , ์ด ์์ jsํ์ผ์ ๋ง๋ค์ด์ฃผ๋ฉด ๋์ ๋ผ์ฐํ
์ ์ฌ์ฉํ ์ ์๋ค. ๋๊ดํธ๋ฅผ ๋ถ์ด๋ฉด ๋๊ดํธ ์์ ๋ด์ฉ์ ์ฃผ์๋ก ๋ณด์ง ์๊ณ ๋ณ์๋ก ๋ณด๊ฒ ๋ค๋ ์๋ฏธ๋ค!
์ด๋ ๊ฒ ๋๋ฉด ์ด๋ํ๊ณ ์ ํ๋ ํ์ด์ง ๋ฒํธ๋ ๊ฒ์๊ธ ๋ฒํธ๊ฐ ๋๊ดํธ ์์ ์ฐ์ธ ๋ณ์๋ช
์ ๋ด๊ฒจ์ ธ ๊ทธ ๋ณ์ ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ ์กฐํํ ์ ์๋ค. ์ค์ ๋ก router.query = { boardID: 1 }
๊ณผ ๊ฐ์ ํ์์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ฉด์ ์๋์ผ๋ก ๊ฒ์๊ธ ๋ฒํธ๋ฅผ ๊บผ๋ด์ฌ ์ ์๋ค.
const router = useRouter()
router.query = {
boardID: 1
}