Skip to content

Commit 6fc183d

Browse files
authored
Merge pull request #8 from yunwoo-yu/master
feat: Default Query Function ๋‚ด์šฉ ์ถ”๊ฐ€
2 parents 323f6a2 + b938f5b commit 6fc183d

1 file changed

Lines changed: 54 additions & 2 deletions

File tree

โ€ŽREADME.mdโ€Ž

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
26. [์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ์˜ฌ๋ ค์ฃผ๋Š” Optimistic Updates(๋‚™๊ด€์  ์—…๋ฐ์ดํŠธ)](#optimistic-update)
5151
27. [์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Fallback UI๋ฅผ ์„ ์–ธ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ErrorBoundary + useQueryErrorResetBoundary](#usequeryerrorresetboundary)
5252
28. [์„œ๋ฒ„ ๋กœ๋”ฉ์ค‘์ผ ๋•Œ Fallback UI๋ฅผ ์„ ์–ธ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ Suspense](#suspense)
53-
29. [๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ์— ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ ์šฉ](#react-query-typescript)
53+
29. [์•ฑ ์ „์ฒด์— ๋™์ผํ•œ ์ฟผ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ๊ณต์œ ํ•˜๋Š” Default Query Function](#default-query-function)
54+
30. [๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ์— ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ ์šฉ](#react-query-typescript)
5455

5556
<br />
5657

@@ -1135,7 +1136,7 @@ const useAddSuperHeroData = () => {
11351136
11361137
[๋ชฉ์ฐจ ์ด๋™](#์ฃผ์š”-์ปจ์…‰-๋ฐ-๊ฐ€์ด๋“œ-๋ชฉ์ฐจ)
11371138
1138-
- [useQueryErrorResetBoundary v4](hhttps://tanstack.com/query/v4/docs/react/reference/useQueryErrorResetBoundary)
1139+
- [useQueryErrorResetBoundary v4](https://tanstack.com/query/v4/docs/react/reference/useQueryErrorResetBoundary)
11391140
- react-query์—์„œ ErrorBoundary์™€ useQueryErrorResetBoundary๋ฅผ ๊ฒฐํ•ฉํ•ด `์„ ์–ธ์ `์œผ๋กœ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Fallback UI๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค.
11401141
- ErrorBoundary์— ๋Œ€ํ•œ ์„ค๋ช…์€ ํ•ด๋‹น ๋ฌธ์„œ ์ฐธ๊ณ  [ErrorBoundary](https://github.com/ssi02014/react-query-tutorial/blob/master/document/errorBoundary.md)
11411142
@@ -1252,6 +1253,57 @@ function App() {
12521253
12531254
<br />
12541255
1256+
## Default Query Function
1257+
1258+
[๋ชฉ์ฐจ ์ด๋™](#์ฃผ์š”-์ปจ์…‰-๋ฐ-๊ฐ€์ด๋“œ-๋ชฉ์ฐจ)
1259+
1260+
- ์•ฑ ์ „์ฒด์—์„œ ๋™์ผํ•œ ์ฟผ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ๊ณต์œ ํ•˜๊ณ , `queryKey`๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ€์ ธ์™€์•ผ ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด `QueryClient`์— `queryFn` ์˜ต์…˜์„ ํ†ตํ•ด Default Query Function์„ ์ง€์ •ํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค.
1261+
- [Default Query Function v4](https://tanstack.com/query/v4/docs/react/guides/default-query-function)
1262+
1263+
```jsx
1264+
// ๊ธฐ๋ณธ ์ฟผ๋ฆฌ ํ•จ์ˆ˜
1265+
const getSuperHero = async ({ queryKey }: any) => {
1266+
const heroId = queryKey[1];
1267+
return await axios.get(`http://localhost:4000/superheroes/${heroId}`);
1268+
};
1269+
1270+
const queryClient = new QueryClient({
1271+
defaultOptions: {
1272+
queries: {
1273+
queryFn: getSuperHero,
1274+
// ...queries options
1275+
},
1276+
},
1277+
});
1278+
1279+
function App() {
1280+
return (
1281+
<QueryClientProvider client={queryClient}>{/* ... */}</QueryClientProvider>
1282+
);
1283+
}
1284+
```
1285+
1286+
- `QueryClient`์— ์•ฑ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ์ฟผ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•ด ์ค€๋‹ค.
1287+
1288+
```jsx
1289+
// ์‚ฌ์šฉ ์˜ˆ์‹œ
1290+
const useSuperHeroData = (heroId: string) => {
1291+
return useQuery(["superheroes", heroId]);
1292+
};
1293+
```
1294+
1295+
```jsx
1296+
// ๋‹ค์Œ ํ˜•ํƒœ ๋ถˆ๊ฐ€๋Šฅ
1297+
const useSuperHeroData = (heroId: string) => {
1298+
return useQuery(["superheroes", heroId], () => getSuperHero(heroId));
1299+
};
1300+
```
1301+
1302+
- useQuery์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ `queryKey`๋งŒ ๋„ฃ์–ด์ฃผ๋ฉด ๋‘ ๋ฒˆ์งธ ์ธ์ž์— ๋“ค์–ด๊ฐˆ `queryFn`์€ ์ž๋™์œผ๋กœ ์„ค์ •๋œ ๊ธฐ๋ณธ ์ฟผ๋ฆฌ ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.
1303+
- ์ผ๋ฐ˜์ ์œผ๋กœ `useQuery`๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์™€ ๋‹ฌ๋ฆฌ `queryFn`์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ธฐ์— ์ฟผ๋ฆฌ ํ•จ์ˆ˜์— ์ง์ ‘ ์ธ์ž๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ํ˜•ํƒœ์˜ ์‚ฌ์šฉ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
1304+
1305+
<br />
1306+
12551307
## React Query Typescript
12561308
12571309
[๋ชฉ์ฐจ ์ด๋™](#์ฃผ์š”-์ปจ์…‰-๋ฐ-๊ฐ€์ด๋“œ-๋ชฉ์ฐจ)

0 commit comments

Comments
ย (0)