일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- slice
- 리액트
- react-native-vision-camera
- 유니온타입
- Typescript
- ios
- 제네릭타입
- 배열
- 자바스크립트
- Android
- 크라코
- reactnative
- react-native-image-picker
- 리액트네이티브
- sort( )
- js
- react-hook-form
- 모던자바스크립트
- Flipper
- javascript
- react-native
- React
- 자료구조와알고리즘
- 파스에러
- 프로그래머스
- 리액트쿼리
- craco
- 타입스크립트
- 코드숨
- react-native-camera-roll
- Today
- Total
KassyLog
리액트 쿼리 본문
TanStack Query | React Query, Solid Query, Svelte Query, Vue Query
Powerful asynchronous state management, server-state utilities and data fetching for TS/JS, React, Solid, Svelte and Vue
tanstack.com
일반적인 연결을 넘어 응답값 캐싱, 무한 스크롤을 위한 메서드등 다양한 기능들을 지원해주고 있는 라이브러리이다.
React Query는 서버로부터 데이터를 요청하고 처리하기 위한 라이브러리로, RESTful API, GraphQL 등 다양한 형태의 데이터 요청을 처리할 수 있다.
React Query는 캐시와 리패칭 기능을 제공하여 데이터 요청 및 처리의 성능을 최적화할 수 있다. 또한, 서버로부터 받은 데이터를 쉽게 관리하고 활용할 수 있도록 도와준다.
장점
- 캐싱
- get을 한 데이터에 대해 update를 하면 자동으로 get을 다시 수행한다. (예를 들면 게시판의 글을 가져왔을 때 게시판의 글을 생성하면 게시판 글을 get하는 api를 자동으로 실행 )
- 데이터가 오래 되었다고 판단되면 다시 get (invalidateQueries)
- 동일 데이터 여러번 요청하면 한번만 요청한다. (옵션에 따라 중복 호출 허용 시간 조절 가능)
- 무한 스크롤 (Infinite Queries (opens new window))
- 비동기 과정을 선언적으로 관리할 수 있다.
- react hook과 사용하는 구조가 비슷하다.
쿼리는 고유키에 연결된 데이터의 비동기 소스에 대한 선언적 종속성을 갖고 있다.
React Query는 원격 데이터를 전역 상태로 관리해야만 하던 문제를 해결할 수 있는 완벽한 훅 라이브러리 사용자가 데이터를 불러올 곳을 라이브러리에 알려주기만 하면, 캐싱, 백그라운드 업데이트, 오래된 데이터 교체까지 어떠한 추가 코드나 설정도 없이 해결 React Query는 또 useState와 useEffect 훅을 몇 줄의 React Query만의 방식으로 대체 가능하다.
useQuery
데이터를 get 하기 위한 api
post, update는 useMutation 사용
첫번째 파라미터는 unique key, 두번째 파라미터는 비동기 함수(api호출함수)
useMutation
값을 바꿀 때 사용하는 api. return 값은 useQuery와 동일
*참고자료
react-query 개념 및 정리
react-query 개념 및 정리, react, react16, hook, useState, useRef, useMemo, useEffect, useReducer, useCallback, useQuery 동기적으로 실행
kyounghwan01.github.io
공부 한 내용을 바탕으로 작성한 글이고 앞으로 더 작성할 예정이다.
'react' 카테고리의 다른 글
react 기본 다시 정리해보기! (1) | 2024.02.28 |
---|---|
리코일 (0) | 2023.03.27 |
emotion과 styled-components (0) | 2023.03.26 |
craco란? (0) | 2022.12.16 |
Refresh Token (0) | 2022.12.15 |