[초보자용] React Query로 Qita API 두드리기.
11124 단어 next.jsReactreact-query
이거 뭐야?
개인적으로 최근 화제가 된 리액트 큐리에 대해 입문을 시도해보고 싶어 도입과 함께 기사를 썼다.
해보고 싶은 배경.
개인적으로 쓴 화제도 이유가 있는데, npm trends를 보면 올해 1월께부터 급격히 늘어나기 시작했다.
이 글을 본 필자는 깜짝 놀라 지금 쓰고 있다.
출전: npm trends
만든 물건
Qiita API 글을 가져오고 표시할 화면을 만들었습니다!
가져오기 단계
가져올 때 이번에는 다음과 같은 조건에 따라 진행할 것이다
Next.js
Chakra UI
1. 프로젝트 제작
다른 기사에도 제작 순서가 적혀 있으니 여기서 생략을 허락해 주십시오.
2. 추가 포장
버전은 집필 당시 최신
3.33.5
이다.3. 가져오기
먼저
App.tsx
에 Provider 기재App.tsx
import "@/styles/globals.css"
import type { AppProps } from "next/app"
import React from "react"
import { ChakraProvider } from "@chakra-ui/react"
import { QueryClient, QueryClientProvider } from "react-query"
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: false,
refetchOnWindowFocus: false,
staleTime: 300000,
},
},
})
function MyApp({ Component, pageProps }: AppProps) {
return (
<QueryClientProvider client={queryClient}>
<ChakraProvider>
<Component {...pageProps} />
</ChakraProvider>
</QueryClientProvider>
)
}
export default MyApp
다음에 react query를 사용하여 Qita API를 호출하는 부분pages/reactQuery.tsx
import { Box, ListItem, Text, UnorderedList } from "@chakra-ui/react"
import { NextPage } from "next"
import React from "react"
import { useQuery } from "react-query"
import axios from "axios"
const ReactQuery: NextPage = () => {
const query = "nextjs"
const { data, isLoading } = useQuery("qiita", async () => {
const { data } = await axios.get("https://qiita.com/api/v2/items", {
params: {
page: "1",
per_page: "20",
query: query,
},
})
return data
})
if (isLoading) {
return <Text>Loading...</Text>
}
if (!data) {
return <Text>Error Occured</Text>
}
return (
<Box>
<UnorderedList>
{data?.map((item: any, index: number) => {
return <ListItem key={index}>{item.title}</ListItem>
})}
</UnorderedList>
</Box>
)
}
export default ReactQuery
옵션App.tsx
의queryClient
에 관해서는 실제 사용reactQuery.tsx
는 10줄 정도만 가능하며 매우 간단하다.default Options를 맨 위에 쓰면 전체 화면에 적용할 수 있기 때문에 무한히 이런 바보 같은 일을 다시는 얻지 못하게 하는 것이 좋다고 생각합니다.
이 응용 프로그램의 기본 설정
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: false,
refetchOnWindowFocus: false,
staleTime: 300000,
},
},
})
retry
:요청이 실패한 경우 몇 번의 요청을 반복해서 보내야 합니까
refetchOnWindowFocus
:window.포커스에서 다시 가져올지 여부
staleTime
:다시 가져올 간격 지정
기본값은 0입니다.
밀리초 설정
총결산
이번에 리액트 큐리를 사용해 실제로 해봤는데
mutations
와query invalidation
다른 옵션은 아직 다 못 썼으니 다음에는 조사하면서 기사를 쓰도록 하겠습니다.
Reference
이 문제에 관하여([초보자용] React Query로 Qita API 두드리기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mu-suke08/items/5160aa9a07e0060e14be텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)