useListParams๋ ๋ชฉ๋ก ํ์ด์ง์ ํํฐ๋ง, ์ ๋ ฌ, ํ์ด์ง๋ค์ด์
์ํ๋ฅผ URL ๊ฒ์ ํ๋ผ๋ฏธํฐ์ ๋๊ธฐํํ๋ ํ
์
๋๋ค. ๋ถ๋งํฌ ๊ฐ๋ฅํ ์ํ ๊ด๋ฆฌ์ ํ์
์์ ํ ํผ ๋ฐ์ธ๋ฉ์ ์ ๊ณตํฉ๋๋ค.
ํต์ฌ ๊ธฐ๋ฅ
URL ๋๊ธฐํ
๊ฒ์ ํ๋ผ๋ฏธํฐ๋ฅผ URL์ ์ ์ฅ๋ถ๋งํฌ ๊ฐ๋ฅํ ์ํ
ํ์ ์์
Zod ์คํค๋ง ๊ธฐ๋ฐ์๋ ํ์
์ถ๋ก
์๋ ํ์ด์ง ๋ฆฌ์
ํํฐ ๋ณ๊ฒฝ ์ 1ํ์ด์ง๋ก์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์
register ํจํด
ํผ ์ปดํฌ๋ํธ ๊ฐํธ ์ฐ๊ฒฐ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ ๊ฑฐ
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
Import ๋ฐ ์ด๊ธฐํ
UserListParams: Zod ์คํค๋ง (์๋ ์์ฑ๋จ)- ๊ธฐ๋ณธ๊ฐ ๊ฐ์ฒด: URL์ ๊ฐ์ด ์์ ๋ ์ฌ์ฉํ ์ด๊ธฐ๊ฐ
์ Zod ์คํค๋ง๊ฐ ํ์ํ๊ฐ์?URL ๊ฒ์ ํ๋ผ๋ฏธํฐ๋ ๋ฌธ์์ด์ด๋ฏ๋ก, ์ซ์๋ boolean์ผ๋ก ํ์ฑํ๋ ค๋ฉด ์คํค๋ง๊ฐ ํ์ํฉ๋๋ค.
UserListParams๋ sonamu.generated.ts์ ์๋ ์์ฑ๋๋ฉฐ, ๋ฐฑ์๋์ ํ์
์ ์์ ํญ์ ๋๊ธฐํ๋ฉ๋๋ค.listParams ์ฌ์ฉ
ํ์ฌ ํํฐ๋ง ์ํ๋ฅผ ๋ด๊ณ ์๋ ๊ฐ์ฒด์ ๋๋ค.setListParams๋ก ์ํ ๋ณ๊ฒฝ
ํํฐ ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ณ URL์ ์ ๋ฐ์ดํธํฉ๋๋ค.listParams์newParams๋ฅผ deep equal ๋น๊ต- ๋ณ๊ฒฝ์ด ์์ผ๋ฉด TanStack Router์
navigate๋ก URL ์ ๋ฐ์ดํธ - URL ๋ณ๊ฒฝ โ
useSearchํ ์ฌ์คํ โlistParams์๋ ๊ฐฑ์
register๋ก ํผ ๋ฐ์ธ๋ฉ
register ํจ์๋ ํผ ์ปดํฌ๋ํธ์ value์ onValueChange๋ฅผ ์๋์ผ๋ก ์ ๊ณตํฉ๋๋ค.
page๋ฅผ ์ ์ธํ ๋ชจ๋ ํํฐ ๋ณ๊ฒฝ ์ ์๋์ผ๋ก 1ํ์ด์ง๋ก ๋์๊ฐ๋๋ค.
์ค์ ์์
์์ ํ ๋ชฉ๋ก ํ์ด์ง
์ปค์คํ ํํฐ ์ถ๊ฐ
๋ฐฑ์๋์์ ์ปค์คํ ํํฐ๋ฅผ ์ถ๊ฐํ ๊ฒฝ์ฐ:URL ๊ณต์ ๋ฐ ๋ถ๋งํฌ
useListParams์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ํํฐ ์ํ๊ฐ URL์ ์ ์ฅ๋๋ค๋ ๊ฒ์
๋๋ค.
- ์ฌ์ฉ์๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ํํฐ ์กฐํฉ์ ๋ถ๋งํฌ
- URL์ ๊ณต์ ํ์ฌ ๋๋ฃ์๊ฒ ๋์ผํ ๋ทฐ ์ ๋ฌ
- ๋ธ๋ผ์ฐ์ ๋ค๋ก๊ฐ๊ธฐ/์์ผ๋ก๊ฐ๊ธฐ๋ก ํํฐ ํ์คํ ๋ฆฌ ํ์
์ต์
disableSearchParams
URL ๋๊ธฐํ๋ฅผ ๋นํ์ฑํํ๊ณ ๋ก์ปฌ ์ํ๋ก๋ง ๊ด๋ฆฌํฉ๋๋ค.- ๋ชจ๋ฌ ์์ ๋ชฉ๋ก (URL์ ๋ณ๊ฒฝํ๊ณ ์ถ์ง ์์ ๋)
- ์๋ฒ ๋๋ ์์ ฏ (๋ ๋ฆฝ์ ์ธ ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํ ๋)
- ํ ์คํธ ํ๊ฒฝ
ํ์ ์์ ์ฑ
์ปดํ์ผ ํ์ ๊ฒ์ฆ
์๋ ์์ฑ
IDE์์register(" ์
๋ ฅ ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ํ๋๊ฐ ์๋ ์์ฑ๋ฉ๋๋ค.
TanStack Router ํตํฉ
useListParams๋ ๋ด๋ถ์ ์ผ๋ก TanStack Router์ ํ
์ ์ฌ์ฉํฉ๋๋ค:
useSearch: URL ๊ฒ์ ํ๋ผ๋ฏธํฐ ์ฝ๊ธฐuseNavigate: URL ์ ๋ฐ์ดํธ
strict: false์ ์๋ฏธ
useSearch({ strict: false })๋ ํ์ฌ ๋ผ์ฐํธ์ ์ ์๋์ง ์์ ๊ฒ์ ํ๋ผ๋ฏธํฐ๋ ์ฝ์ ์ ์๊ฒ ํฉ๋๋ค.
์ด๋ฅผ ํตํด ๋์ ์ผ๋ก ์ถ๊ฐ๋๋ ํํฐ๋ฅผ ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.์ฃผ์์ฌํญ
1. ์ด๊ธฐ๊ฐ ์ค์
num: ํ์ด์ง๋น ํญ๋ชฉ ์page: ํ์ฌ ํ์ด์ง (1๋ถํฐ ์์)
2. Enum ํ๋์ ํ์ ๋จ์ธ
3. register์ ์ปค์คํ onChange ํจ๊ป ์ฌ์ฉ
๊ด๋ จ ๋ฌธ์
- Service ์ฌ์ฉํ๊ธฐ - API ํธ์ถ ๋ฐฉ๋ฒ
- TanStack Query ํตํฉ - ์บ์ฑ๊ณผ ๋ฆฌํจ์นญ
- auto-generated-overview - ์๋ ์์ฑ ์ปดํฌ๋ํธ๋ค
- useSelection - ๋ค์ค ์ ํ ๊ด๋ฆฌ