react js의 React Query Custom Hooks 예제
2526 단어 javascriptreactwebdev
이제 반응 쿼리로 제품 목록을 가져오는 구성 요소를 만듭니다.
이제 Product.js 구성 요소에서
const Product = () => {
const products = useProducts()
if(products.isLoading) return "Loading ....."
if(products.isError) return "Error ...."
return(
<>
products.map((product) => (
<h4 key={product.id}>{product.title}</h4>
))
</>
)
}
useProducts.js로 후크를 만들 수 있습니다.
const useProducts = () => {
return useQuery(['products'] , getProducts)
};
이제 단일 데이터를 가져오려면 id를 전달할 수 있습니다.
const Product = () => {
const params = useParams();
const id = Number(params?.id)
const product = useProduct(id)
if(product.isLoading) return "Loading ....."
if(product.isError) return "Error ...."
return(
<>
<h4>{product.title}</h4>
))
</>
)
}
const useProduct = (id) => {
return useQuery(['product' , id] , () => getProduct(id))
};
이제 게시 및 수정을 위해
const AddProduct = () => {
const mutation = useAddProduct()
const [data , setData] = useState('');
return(
<>
<input value={data} onChange={(e) =>
setData(e.target.value) } />
<button onClick={mutation.mutate(data)}></button>
</>
)
)
};
const useAddProduct = () => {
return useMutation(postProduct , {
onSuccess : () => {
toast.success(`Added successfully`)
}
})
};
편집을 위해
const EditProduct = () => {
const params = useParams();
const id = Number(params.id);
const mutation = useEditProduct()
const [data , setData] = useState('');
return(
<>
<input value={data} onChange={(e) =>
setData(e.target.value) } />
<button onClick={mutation.mutate(data , id)}></button>
</>
)
)
};
const useEditProduct = () => {
return useMutation(editProduct , {
onSuccess : () => {
toast.success(`edited successfully`)
}
})
};
결론,
이것은 서버 측 데이터를 관리하고 비즈니스 로직을 UI 구성 요소와 분리하는 가장 좋은 방법이므로 외부 세계의 누구나 코드를 확인, 편집 및 이해할 수 있습니다. 이것이 반응 작업에 가장 좋은 방법이며 필요한 구성 요소만 사용자 지정 후크의 데이터를 사용합니다.
Reference
이 문제에 관하여(react js의 React Query Custom Hooks 예제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rajivchaulagain/adding-custom-hook-with-react-query-in-react-js-41ef텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)