오늘은 react-query공부 ❕
- Server와 Client 사이 비동기 로직들을 쉽게 다룰 수 있다.
- 캐싱, 동기화, 업데이트가 쉽게 이루어진다.
npm install react-query
import { QueryClient, QueryClientProvider } from 'react-query'
...
const queryClient = new QueryClient();
...
<QueryClientProvider client={queryClient}>
<ReactQueryDevtools />
<Provider store={store}>
<RecoilRoot>
<BrowserRouter>
<Routes />
</BrowserRouter>
</RecoilRoot>
</Provider>
</QueryClientProvider>
import { useQuery } from 'react-query'
...
const { data, isLoading, error } = useQuery(uniqueKey, queryFn, options)
uniqueKey
useQuery('key', ...) // string
useQuery(['key], ...) // 배열
queryFn
useQuery(['key', value], () => {
fethchFunc(value) // api불러오는 함수
})
useQuery('key', fetchFunc())
options
useQuery(
['key', value],
() => fethchFunc(value),
{
enabled: !!value // value값이 있을 때만 쿼리 요청을 한다.
}
)
useQuery(
['key', value],
() => fethchFunc(value),
{
enabled: !!value,
staleTime: 6 * 10 * 1000 //시간 설정
}
)
useQuery(
['key', value],
() => fethchFunc(value),
{
enabled: !!value,
staleTime: 6 * 10 * 1000,
refetchOnWindowFocus: false
}
)
const { data } = useQuery(
['key', value],
() => fethchFunc(value),
{
enabled: !!value,
staleTime: 6 * 10 * 1000,
refetchOnWindowFocus: false,
onSuccess: data => {
console.log(data) //여기~
},
}
)
const { data } = useQuery(
['key', value],
() => fethchFunc(value),
{
enabled: !!value,
staleTime: 6 * 10 * 1000,
refetchOnWindowFocus: false,
onSuccess: data => {
console.log(data)
},
onError: e => {
console.log(e) // 여기~
}
}
)
오늘은 검색창 UI, cors해결, 디바운싱, useQuery로 api호출, 입력한 질환명과 일치하는 부분만 볼드처리 까지 완료했다. 내일 팀 레포 구조 잡고 합치는 과정을 할 예정이다..! 난 아직 퍼지 문자열은 못했지만 팀원분들과 해결해 나가면 될거같다..! 내일도 화이팅이다.🔥