Skip to content

Commit 60d856c

Browse files
manudeligwansikkkangju2000
committed
docs(react-query): add docs for usePrefetchInfiniteQuery
Co-authored-by: Gwansik Kim <[email protected]> Co-authored-by: Juhyeok Kang <[email protected]>
1 parent 1848a2e commit 60d856c

File tree

6 files changed

+120
-106
lines changed

6 files changed

+120
-106
lines changed

docs/suspensive.org/src/pages/docs/react-query/_meta.en.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
"type": "separator",
88
"title": "API Reference"
99
},
10+
"queryOptions": { "title": "queryOptions" },
11+
"infiniteQueryOptions": { "title": "infiniteQueryOptions" },
1012
"useSuspenseQuery": { "title": "useSuspenseQuery" },
1113
"useSuspenseQueries": { "title": "useSuspenseQueries" },
1214
"useSuspenseInfiniteQuery": { "title": "useSuspenseInfiniteQuery" },
1315
"usePrefetchQuery": { "title": "usePrefetchQuery" },
14-
"queryOptions": { "title": "queryOptions" },
15-
"infiniteQueryOptions": { "title": "infiniteQueryOptions" },
16+
"usePrefetchInfiniteQuery": { "title": "usePrefetchInfiniteQuery" },
1617
"SuspenseQuery": { "title": "<SuspenseQuery/>" },
1718
"SuspenseQueries": { "title": "<SuspenseQueries/>" },
1819
"SuspenseInfiniteQuery": { "title": "<SuspenseInfiniteQuery/>" },

docs/suspensive.org/src/pages/docs/react-query/_meta.ko.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
"type": "separator",
88
"title": "API 문서"
99
},
10+
"queryOptions": { "title": "queryOptions" },
11+
"infiniteQueryOptions": { "title": "infiniteQueryOptions" },
1012
"useSuspenseQuery": { "title": "useSuspenseQuery" },
1113
"useSuspenseQueries": { "title": "useSuspenseQueries" },
1214
"useSuspenseInfiniteQuery": { "title": "useSuspenseInfiniteQuery" },
1315
"usePrefetchQuery": { "title": "usePrefetchQuery" },
14-
"queryOptions": { "title": "queryOptions" },
15-
"infiniteQueryOptions": { "title": "infiniteQueryOptions" },
16+
"usePrefetchInfiniteQuery": { "title": "usePrefetchInfiniteQuery" },
1617
"SuspenseQuery": { "title": "<SuspenseQuery/>" },
1718
"SuspenseQueries": { "title": "<SuspenseQueries/>" },
1819
"SuspenseInfiniteQuery": { "title": "<SuspenseInfiniteQuery/>" },
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { Callout, Sandpack } from '@/components'
2+
3+
# usePrefetchInfiniteQuery
4+
5+
The usePrefetchInfiniteQuery does not return anything, it should be used just to fire a prefetch during render, before a suspense boundary that wraps a component that uses useSuspenseInfiniteQuery.
6+
7+
```jsx /usePrefetchInfiniteQuery/
8+
import { usePrefetchInfiniteQuery, useSuspenseInfiniteQuery } from '@suspensive/react-query'
9+
10+
const PostsPage = ({ postId }) => {
11+
usePrefetchInfiniteQuery({
12+
queryKey: ['posts'],
13+
queryFn: () => getPosts(),
14+
}) // Prefetch query before suspense boundary
15+
16+
return (
17+
<Suspense fallback={<div>Loading...</div>}>
18+
<Posts postId={postId} />
19+
</Suspense>
20+
)
21+
}
22+
23+
export const Posts = () => {
24+
const postsInifiniteQuery = useSuspenseInfiniteQuery({
25+
queryKey: ['posts'],
26+
queryFn: () => getPosts(),
27+
})
28+
29+
return <>...</>
30+
}
31+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { Callout, Sandpack } from '@/components'
2+
3+
# usePrefetchInfiniteQuery
4+
5+
usePrefetchInfiniteQuery는 아무것도 반환하지 않으며, useSuspenseInfiniteQuery를 사용하는 컴포넌트를 래핑하는 suspense boundary가 렌더 되기전에 prefetch를 발생시키는 데에 사용합니다.
6+
7+
```jsx /usePrefetchInfiniteQuery/
8+
import { usePrefetchInfiniteQuery, useSuspenseInfiniteQuery } from '@suspensive/react-query'
9+
10+
const PostsPage = ({ postId }) => {
11+
usePrefetchInfiniteQuery({
12+
queryKey: ['posts'],
13+
queryFn: () => getPosts(),
14+
}) // suspense경계 전에 prefetch를 발생 시키는 데에 사용합니다
15+
16+
return (
17+
<Suspense fallback={<div>Loading...</div>}>
18+
<Posts postId={postId} />
19+
</Suspense>
20+
)
21+
}
22+
23+
export const Posts = () => {
24+
const postsInifiniteQuery = useSuspenseInfiniteQuery({
25+
queryKey: ['posts'],
26+
queryFn: () => getPosts(),
27+
})
28+
29+
return <>...</>
30+
}
31+
```

docs/suspensive.org/src/pages/docs/react-query/usePrefetchQuery.en.mdx

+26-51
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ import { Callout, Sandpack } from '@/components'
55
The usePrefetchQuery does not return anything, it should be used just to fire a prefetch during render, before a suspense boundary that wraps a component that uses useSuspenseQuery.
66

77
```jsx /usePrefetchQuery/
8-
import { usePrefetchQuery, queryOptions } from '@suspensive/react-query'
8+
import { usePrefetchQuery, useSuspenseQuery } from '@suspensive/react-query'
99

1010
const PostPage = ({ postId }) => {
11-
usePrefetchQuery(query.post(postId)) // Prefetch query before suspense boundary
11+
usePrefetchQuery({
12+
queryKey: ['posts', postId],
13+
queryFn: () => getPost(postId),
14+
}) // Prefetch query before suspense boundary
1215

1316
return (
1417
<Suspense fallback={<div>Loading...</div>}>
@@ -18,37 +21,28 @@ const PostPage = ({ postId }) => {
1821
}
1922

2023
export const Post = ({ postId }) => {
21-
const { data } = useSuspenseQuery(query.post(postId))
24+
const { data } = useSuspenseQuery({
25+
queryKey: ['posts', postId],
26+
queryFn: () => getPost(postId),
27+
})
2228

23-
return (
24-
<div>
25-
<h1>{data.title}</h1>
26-
<p>{data.body}</p>
27-
</div>
28-
)
29-
}
30-
31-
const query = {
32-
post: (postId) =>
33-
queryOptions({
34-
queryKey: ['posts', postId],
35-
queryFn: () => getPost(postId),
36-
}),
29+
return <>...</>
3730
}
3831
```
3932

4033
<Sandpack>
4134

4235
```tsx Example.tsx active
4336
import { Suspense } from '@suspensive/react'
44-
import { usePrefetchQuery } from '@suspensive/react-query'
45-
import React from 'react'
46-
import { Post } from './Post'
47-
import { query } from './query'
37+
import { usePrefetchQuery, useSuspenseQuery } from '@suspensive/react-query'
38+
import { useState } from 'react'
4839

4940
export const Example = () => {
50-
const [postId, setPostId] = React.useState(1)
51-
usePrefetchQuery(query.post(postId))
41+
const [postId, setPostId] = useState(1)
42+
usePrefetchQuery({
43+
queryKey: ['posts', postId],
44+
queryFn:() => getPost(postId),
45+
})
5246

5347
return (
5448
<div>
@@ -64,14 +58,12 @@ export const Example = () => {
6458
</div>
6559
)
6660
}
67-
```
6861

69-
```tsx Post.tsx
70-
import { useSuspenseQuery } from '@suspensive/react-query'
71-
import { query } from './query'
72-
73-
export const Post = ({ postId }: { postId: number }) => {
74-
const { data } = useSuspenseQuery(query.post(postId))
62+
const Post = ({ postId }: { postId: number }) => {
63+
const { data } = useSuspenseQuery({
64+
queryKey: ['posts', postId],
65+
queryFn:() => getPost(postId),
66+
})
7567

7668
return (
7769
<div>
@@ -80,28 +72,11 @@ export const Post = ({ postId }: { postId: number }) => {
8072
</div>
8173
)
8274
}
83-
```
8475

85-
```tsx /query.ts
86-
import { queryOptions } from '@suspensive/react-query'
87-
88-
export const query = {
89-
post: (postId: number) =>
90-
queryOptions({
91-
queryKey: ['posts', postId],
92-
queryFn: async (): Promise<{
93-
id: number
94-
title: string
95-
body: string
96-
}> => {
97-
const response = await fetch(`https://jsonplaceholder.typicode.com/posts/${postId}`)
98-
if (!response.ok) {
99-
throw new Error('An error occurred')
100-
}
101-
return await response.json()
102-
}
103-
})
104-
}
76+
const getPost = (postId: number) =>
77+
fetch(`https://jsonplaceholder.typicode.com/posts/${postId}`).then<{ id: number; title: string; body: string }>(
78+
(res) => res.json()
79+
)
10580
```
10681

10782
</Sandpack>

docs/suspensive.org/src/pages/docs/react-query/usePrefetchQuery.ko.mdx

+26-51
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ import { Callout, Sandpack } from '@/components'
55
usePrefetchQuery는 아무것도 반환하지 않으며, useSuspenseQuery를 사용하는 컴포넌트를 래핑하는 suspense boundary가 렌더 되기전에 prefetch를 발생시키는 데에 사용합니다.
66

77
```jsx /usePrefetchQuery/
8-
import { usePrefetchQuery, queryOptions } from '@suspensive/react-query'
8+
import { usePrefetchQuery, useSuspenseQuery } from '@suspensive/react-query'
99

1010
const PostPage = ({ postId }) => {
11-
usePrefetchQuery(query.post(postId)) // suspense경계 전에 prefetch를 발생 시키는 데에 사용합니다
11+
usePrefetchQuery({
12+
queryKey: ['posts', postId],
13+
queryFn: () => getPost(postId),
14+
}) // suspense경계 전에 prefetch를 발생 시키는 데에 사용합니다
1215

1316
return (
1417
<Suspense fallback={<div>Loading...</div>}>
@@ -18,37 +21,28 @@ const PostPage = ({ postId }) => {
1821
}
1922

2023
export const Post = ({ postId }) => {
21-
const { data } = useSuspenseQuery(query.post(postId))
24+
const { data } = useSuspenseQuery({
25+
queryKey: ['posts', postId],
26+
queryFn: () => getPost(postId),
27+
})
2228

23-
return (
24-
<div>
25-
<h1>{data.title}</h1>
26-
<p>{data.body}</p>
27-
</div>
28-
)
29-
}
30-
31-
const query = {
32-
post: (postId) =>
33-
queryOptions({
34-
queryKey: ['posts', postId],
35-
queryFn: () => getPost(postId),
36-
}),
29+
return <>...</>
3730
}
3831
```
3932

4033
<Sandpack>
4134

4235
```tsx Example.tsx active
4336
import { Suspense } from '@suspensive/react'
44-
import { usePrefetchQuery } from '@suspensive/react-query'
45-
import React from 'react'
46-
import { Post } from './Post'
47-
import { query } from './query'
37+
import { usePrefetchQuery, useSuspenseQuery } from '@suspensive/react-query'
38+
import { useState } from 'react'
4839

4940
export const Example = () => {
50-
const [postId, setPostId] = React.useState(1)
51-
usePrefetchQuery(query.post(postId))
41+
const [postId, setPostId] = useState(1)
42+
usePrefetchQuery({
43+
queryKey: ['posts', postId],
44+
queryFn:() => getPost(postId),
45+
}) // suspense경계 전에 prefetch를 발생 시키는 데에 사용합니다
5246

5347
return (
5448
<div>
@@ -64,14 +58,12 @@ export const Example = () => {
6458
</div>
6559
)
6660
}
67-
```
6861

69-
```tsx Post.tsx
70-
import { useSuspenseQuery } from '@suspensive/react-query'
71-
import { query } from './query'
72-
73-
export const Post = ({ postId }: { postId: number }) => {
74-
const { data } = useSuspenseQuery(query.post(postId))
62+
const Post = ({ postId }: { postId: number }) => {
63+
const { data } = useSuspenseQuery({
64+
queryKey: ['posts', postId],
65+
queryFn:() => getPost(postId),
66+
})
7567

7668
return (
7769
<div>
@@ -80,28 +72,11 @@ export const Post = ({ postId }: { postId: number }) => {
8072
</div>
8173
)
8274
}
83-
```
8475

85-
```tsx /query.ts
86-
import { queryOptions } from '@suspensive/react-query'
87-
88-
export const query = {
89-
post: (postId: number) =>
90-
queryOptions({
91-
queryKey: ['posts', postId],
92-
queryFn: async (): Promise<{
93-
id: number
94-
title: string
95-
body: string
96-
}> => {
97-
const response = await fetch(`https://jsonplaceholder.typicode.com/posts/${postId}`)
98-
if (!response.ok) {
99-
throw new Error('An error occurred')
100-
}
101-
return await response.json()
102-
}
103-
})
104-
}
76+
const getPost = (postId: number) =>
77+
fetch(`https://jsonplaceholder.typicode.com/posts/${postId}`).then<{ id: number; title: string; body: string }>(
78+
(res) => res.json()
79+
)
10580
```
10681

10782
</Sandpack>

0 commit comments

Comments
 (0)