React

[React] 20. react-query

qweasd5123 2025. 1. 5. 15:48

react-query

ajax 요청중 자동으로 데이터를 다시 가져오거나, 요청 실패시 몇초 간격으로 재시도, 다음 페이지 미리 가져오기 등 실시간 데이터를 보여주는 사이트에서 유용하다.

 

react-query 설치

npm install react-query@3

 

react-query 셋팅

import { QueryClient, QueryClientProvider } from "react-query"  //1번
const queryClient = new QueryClient()   //2번

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <QueryClientProvider client={queryClient}>  //3번
    <Provider store={store}>
      <BrowserRouter>
        <App />
      </BrowserRouter>
    </Provider>
  </QueryClientProvider>
);

 

react-query 로 ajax요청

function App(){
  let result = useQuery('userName', ()=>
    axios.get('사이트 url')
    .then((a)=>{ return a.data })
  )
}

 

react-query 장점

1. ajax 요청 성공/실패/로딩중 상태를 쉽게 파악할 수 있다.

function App(){
  let result = useQuery('userName', ()=>
    axios.get('사이트 url')
    .then((a)=>{ return a.data })
  )
   return (
    <div>
      { result.isLoading && '로딩중' }
      { result.error && '에러' }
      { result.data && result.data.name }
    </div>
  )
}
}

 

2. ajax 자동 재요청

일정시간이 경과하거나 다시 메인페이지로 돌아오는 등 여러 경우에 알아서 ajax 요청을 다시 해준다.

 

3. 요청 실패시 재시도

요청에 실패하면 자동으로 재시도

 

4. ajax로 가져온 결과는 state 공유가 필요없다

다른 컴포넌트에서 같은 결과가 필요하다면, 그 컴포넌트에서 ajax를 요청하면 된다. react-query에서 자동으로 ajax 요청이 2개가 있다면 1개만 날려준다.

 

'React' 카테고리의 다른 글

[React] 21. 성능개선  (0) 2025.01.05
[React] 19. if문 작성패턴  (0) 2025.01.05
[React] 18. localStorage  (0) 2025.01.05
[React] 17. Redux  (0) 2025.01.02
[React] 16. Context API  (0) 2025.01.02