๐ searchParam์ผ๋ก ์ฟผ๋ฆฌ์คํธ๋ง ํ์ฑํ๊ธฐ
๋ชจ๋ ๊ฐ๋ค์ ๊ตณ์ด ์ํ๋ก ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค.
๊ฐ๋จํ ๊ฐ์ ์ ์ฅํ๊ฑฐ๋, ๊ฐ์ ์ ์ง์ํค๋ฉฐ URL์ ๊ณต์ ํ ๋ ์ฃผ๋ก ์ฟผ๋ฆฌ์คํธ๋ง์ ์ฌ์ฉํ๋๋ฐ,
์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ด URL ๋ง์ง๋ง์ “?”๋ฅผ ์ถ๊ฐํ ํ ๋ฐ์ดํฐ๋ฅผ key=value
ํํ๋ก ๋์ดํ๋ฉด ๋ฉ๋๋ค.
https://abcd.com?ํค=๊ฐ&ํค2=๊ฐ2
๊ทธ๋ผ nextjs์์ ์ด๋ป๊ฒ ์ฟผ๋ฆฌ์คํธ๋ง์ ํ์ฑํ ์ ์๋์ง ์๊ฐํฉ๋๋ค.
๐ Server Component
type SearchParamProps = {
searchParams: {
page: number;
title: string;
};
};
export default function ServerSearchParam(props: SearchParamProps) {
const page = props.searchParams.page;
const title = props.searchParams.title;
return (
<div>
<h1>{JSON.stringify(props)}</h1>
<h1>{`page -> ${page} / title -> ${title}`}</h1>
</div>
);
}
์๋ฒ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์ฌ์ ์ ์ ์๋ ์ฟผ๋ฆฌ ์คํธ๋ง์ ํด๋น ํ์ด์ง props์ searchParam ํ์
์ผ๋ก ์ ์ํด๋๋ฉด ๊ฐํธํ๊ฒ props.searchParams.key
๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๐ Client Component
"use client";
import { useSearchParams } from "next/navigation";
export default function ClientSearchParam() {
const searchParams = useSearchParams();
const page = searchParams.get("page");
const title = searchParams.get("title");
return (
<div className={style.box}>
<h1>{`page -> ${page} / title -> ${title}`}</h1>
</div>
);
}
ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์๋ ๊ฐํธํ๊ฒ ์ฟผ๋ฆฌ ์คํธ๋ง์ ํ์ํ ์ ์๋ useSearchParams
๋ ํ
์ ์ ๊ณตํด์ค๋๋ค.
์๋ฒ ์ปดํฌ๋ํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก props๋ฅผ ํตํด ์ฟผ๋ฆฌ ์คํธ๋ง์ ํ์ฑํ ์ ์์ง๋ง, ํ ์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํด๋ณด๋ ๊ฒ๋ ๋์์ง ์์๋ณด์ ๋๋ค.
useSearchParams.get()
์ผ๋ก ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฒ ๋ฟ๋ง์ด ์๋ ๋ค๋ฅธ ๊ธฐ๋ฅ๋ค์ ํ์ํ๊ณ ์ถ์ ๋ถ๋ค๊ป์ ๋ค์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํด์ฃผ์ธ์.
https://nextjs.org/docs/app/api-reference/functions/use-search-params
Functions: useSearchParams | Next.js
API Reference for the useSearchParams hook.
nextjs.org
'React > Nextjs' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[NextJS, SEO] AppRouter Dynamic Sitemap.xml ์์ฑํ๊ธฐ (0) | 2024.11.22 |
---|---|
[NextJS, SEO] AppRouter Dynamic Metadata ์์ฑํ๊ธฐ (0) | 2024.11.21 |
Vercel - Nextjs ๋ฐฉ๋ฌธ์ ์ ์ง๊ณ, ์น ๋ถ์ ์ด์ฉํ๊ธฐ (0) | 2024.10.10 |
[Nextjs] react-query๋ฅผ ์ด์ฉํ ์๋ฒ ๋ฐ์ดํฐ Prefetch ๋ฐฉ๋ฒ (0) | 2024.09.12 |
[Nextjs] Dynamic Route, ๋์ ๋ผ์ฐํ (0) | 2024.08.03 |
๋๊ธ