isPending vs isLoading
안녕하세요 로펀님
tanstackquery에서 최근에 isPending이 생겨서 어느 블로그에선가 봤는데 이제 isPending을 사용하면 된다고 했던 것 같은데
혹시 둘의 차이가 있을까요?
어느 시점에서는 이것을 사용해야 한다라는 가이드가 있을까요?
답변 1
3
안녕하세요 🙂isPending을 공식문서에서 추천하는 이유를 예시와 함께 설명드릴게요!
- isPending는 status 필드에서 직접 파생된 상태입니다.
- 반면, isLoading은 status와 fetchStatus 두 가지 상태를 조합한 상태입니다.
그렇기 때문에 isLoading과 isError를 체크한다고 해서 "데이터가 이제 확실히 사용 가능하다"는 보장이 없습니다. 반면, isPending을 체크하면 데이터의 상태를 더 정확하게 알 수 있습니다.
또한, TypeScript는 pending과 error를 확인했을 때만 undefined 타입을 제거합니다.
예시
- isPending: 이 상태는 데이터를 불러오는 중임을 나타냅니다. 즉, 데이터가 아직 로딩 중일 때 isPending이 true가 됩니다.
- isLoading: 이 상태는 데이터를 불러오는 중이거나 재시도 중일 때 true가 됩니다.
예를 들어, 데이터를 불러올 때 isLoading이 true일 수도 있지만, 에러가 발생했을 때도 여전히 isLoading이 true일 수 있습니다. 이런 경우, 데이터를 사용할 수 있는지 확실히 알 수 없습니다.
하지만 isPending은 에러가 없고, 데이터가 로딩 중이기만 한 경우를 나타내므로, isPending이 false로 바뀌면 데이터가 로딩을 완료했음을 알 수 있습니다.
따라서, 데이터를 안전하게 사용하기 위해서는 isPending 상태를 체크하는 것이 더 정확하고 안정적이라는 이유입니다!
Recoil 에러
0
87
1
투두 리스트 ui 작업 중에 material-tailwind가 리액트와 호환 문제가 있는지 리액트 19에서 18로 낮춰도 인풋과 아이콘 버튼 컴포넌트가 제대로 표시되지 않아요 ㅜㅜ
0
79
1
supabase 오픈 소스 사용에 대해서
0
94
0
next와 react query 버전 업데이트 관련 질문
0
75
1
Vercel 무료버전 서버속도
0
552
2
material 붉은 밑줄
0
117
2
파일 이름이 한글일 때 에러 발생
0
264
2
recoil 타입 에러
0
109
2
강의 code 올려논 github 있나요 ?
0
115
2
아니... 강의 자료가 없나요?
0
188
3
무한스크롤 기능, 검색기능 대소문자
0
107
1
smtp부분
0
92
2
모듈 에러
0
154
2
20:34초에 await이 아무 효과가 없다고 뜨는데 사용하신 이유가 궁금합니다
0
169
2
latest 버전 변경에 따른 프로젝트 설정 방식 업데이트 가능하신가요
0
158
2
개인 개발자 비즈 앱 전환 버튼이 안보여요
0
252
2
supabase에서 가입된 유저를 강제로 로그아웃 시키는 방법?
0
424
2
메세지를 전송하면 DB에는 남는데 화면에 보이지 않아요.
0
138
2
6:29 movie-card-list.tsx파일작성하시기전에
0
88
2
todolist할때 컴포넌트 분리 안했던 것 같은데...
1
140
2
vscode에서 @material-tailwind/react component를 가져왔을 때 뜨는 빨간줄 제거할 수는 없나요?
0
322
2
searchMovies에서 hasNextPage가 필요한 이유
0
139
2
react 19버전에서는 recoil사용이 어렵나요?
0
1499
2
netflix clone 할 때 recoil을 하는 순간 에러가 없어지지 않아요
2
319
3





