React Devtools를 사용하다 갑작스럽게 상태에 대한 혼란이 왔다.
정리하고자 복습하는 차원에서 다시 한번 짤막하게 정리해본다.
State
이 상태를 Provider에서 설정해줄 수 있으며, 특정 기능이 필요하면 useQuery에서 오버라이드가 가능하다.
Actions
💡 refetch와 inValidate의 차이
refetch는 무조건 가져오지만, inValidate는 inActive 상태일 때는 가져오지 않는다.
(화면 상의 노출 유무로 생각하자. inValidate는 화면 상의 데이터가 없으면 호출 X)
하지만 무조건적으로 inValidate가 좋은건 아니다.
예를 들어, 화면에 안 보인다고 해서 그 데이터가 안 필요한게 아니다.
다른 컴포넌트에서 전역적으로 공유하는 데이터들은 화면에 보이지 않아도 필요할 수 있다.
이런 케이스에서는 refetch를 사용하자.
데이터 패칭할 때 필요없는 데이터(예를 들어 게시글 - 댓글)는 enabled 해서 추가 호출을 막자
기존의 useSearchParams는 Readonly 이기 때문에 제거 하는 방법이 없다.
이럴 때에는 new URLSearchParams(함수) 방식으로 변형할 수 있다.