useQuery μμ λ°νλλ κ°μ²΄μ μ’ λ₯
β λ°μ΄ν°κ° μμ§ μ€λΉλμ§ μμμ λ
λ°μ΄ν°κ° μ μλμ§ μμΌλ©΄ μ€λ₯κ° λμ€κ² νμ§ μκ³ , μ μ ν μ‘°μΉλ₯Ό ν μ μμ΅λλ€.
κ·Έ μ€ μ΄ν΄λ³Ό κ²μ isLoading κ³Ό isError μ
λλ€.
- μ΄ λκ°μ§λ λ°μ΄ν°κ° λ‘λ© μ€μΈμ§ μ¬λΆ,
- λ°μ΄ν°λ₯Ό κ°μ Έμ¬ λ μ€λ₯κ° μλμ§ μ¬λΆλ₯Ό μλ €μ£Όλ boolean μ λλ€.
μ λ²μ λ§λ μ½λ
const {data, isLoading, isError} = useQuery('posts', fetchPosts);
- λμΌνκ² λ°ν κ°μ²΄μμ isLoading κ³Ό isError λ₯Ό μΆκ° ν©λλ€.
β isLoadding
// replace with useQuery
const {data, isLoading, isError} = useQuery('posts', fetchPosts);
// λ§μ½ λ‘λ© μ€μ΄λΌλ©΄
if(isLoading){
return <h3>Loading...</h3>;
}
- λ‘λ© μνμ μμ λ isLoading μ΄ μ μ©λλ κ²μ λ³Ό μ μμ΅λλ€.
- κ·Έλ¦¬κ³ λ μ΄μ λ‘λ©νμ§ μμΌλ©΄ false κ° λκ³ ν΄λΉ λ΄μ©μ λ°ννλ κ²μ λ³Ό μ μμ΅λλ€.
isLoading κ³Ό isFetching μ μ°¨μ΄μ β
isFetching | isLoading |
---|---|
λΉλκΈ° μΏΌλ¦¬κ° ν΄κ²°λμ§ μμμμ μλ―Έ(axios, GraphQL) | μ΄μ λν νμ μ§ν©, κ°μ Έμ€λ μνμ μμμ μλ―Έ |
- isLoading μ μΊμ λ λ°μ΄ν°λ μμ΅λλ€.
- κ·Έμ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ μ€μ΄κ³ , νμν μΊμ λ°μ΄ν°λ μλ€λ κ² μ λλ€.
- μ΄λ κ²λ§ 보면 ν° μ°¨μ΄κ° μμ΄ λ³΄μΌ μ μμ§λ§ λμ€μ νμ΄μ§ 맀κΉ(Pagination) μ μ§νν λ μΊμ λ λ°μ΄ν°κ° μμ λμ
- μμ λλ₯Ό ꡬλΆν΄μΌ νλ€λ μ¬μ€μ μκ² λ©λλ€.
β isError
쿼리 ν¨μμΈ fetchPosts μμ μ€λ₯κ° λ°μνλ©΄ λ°μ΄ν°λ μ»μ§ λͺ»ν©λλ€.
λ°μ΄ν°κ° μ μλμ§ μκΈ° λλ¬Έμ μ‘°κΈ° λ°ν κ°μ΄ νμ ν©λλ€.
const {data, isLoading, isError} = useQuery('posts', fetchPosts);
// λ§μ½ λ‘λ© μ€μ΄λΌλ©΄
if(isLoading){
return <h3>Loading...</h3>;
}
if(isError){
return <h3>Sorry, no Data</h3>
}
- κ°λ°μ λκ΅¬λ‘ λ°μ΄ν°λ₯Ό λΆλ¬μ€λ λͺ¨μ΅μ 보면, λ‘λ©μ ν¬κΈ°νκΈ° μ κΉμ§ μ΄ μΈλ²μ μλ ν©λλ€.
- μλ νμλ λ³κ²½ ν μ μμ§λ§, React Query λ κΈ°λ³Έμ μΌλ‘ μΈ λ² μλν νμ ν΄λΉ λ°μ΄ν°λ₯Ό κ°μ Έμ¬ μ μλ€κ³ κ²°μ ν©λλ€.
β error
λ°ν κ°μ²΄μλ 쿼리 ν¨μμμ μ λ¬νλ μλ¬λ μμ΅λλ€.
const {data, isLoading, isError, error} = useQuery('posts', fetchPosts);
// λ§μ½ λ‘λ© μ€μ΄λΌλ©΄
if(isLoading){
return <h3>Loading...</h3>;
}
if(isError){
return (
<React.Fragment>
<h3>Sorry, no Data</h3>
<p>{error.toString()}</p>
</React.Fragment>
)
}
β μ°Έκ³
'π Front-End > React.js' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
React Query - staleTime vs cacheTime (0) | 2022.10.25 |
---|---|
React Query - Dev Tools (0) | 2022.10.25 |
React Query - λ§λ€κΈ° (0) | 2022.10.25 |
React Query β (0) | 2022.10.25 |
Redux Toolkit (0) | 2022.10.25 |