react-api-hooks
Version:
A set of React hooks for working with APIs.
84 lines (67 loc) • 2.24 kB
Markdown
//img.shields.io/bundlephobia/minzip/react-api-hooks.svg)



React hooks to interact with an API from a stateless component using axios.
- Uses axios and allows for complete request control
- Works with stateless/functional components
- Ability to filter and paginate API results
- Ability to delay API calls while the user is typing
- Works with infinite scroll components
- Request auto-cancellation for concurrent requests or component unmount
- [Basic](https://react-api-hooks.abwalters.now.sh/examples/basic/)
- [Pagination](https://react-api-hooks.abwalters.now.sh/examples/pagination/)
- [Filtering](https://react-api-hooks.abwalters.now.sh/examples/filter/)
- [Infinite Scroll](https://react-api-hooks.abwalters.now.sh/examples/inf-scroll/)
```
npm i react-api-hooks -s
```
```javascript
import { useAPI } from 'react-api-hooks';
const TestComponent = () => {
const { data=[], error, isLoading } = useAPI(url);
if (error){
return <Error />
}
if (isLoading){
return <Loading />
}
return (
<div>
{data.map(item => <span key={item.id}>{item.text}</span>)}
</div>
)
}
```
```javascript
import { useAPI } from 'react-api-hooks';
const TestComponent = () => {
const axiosConfig = {
method: 'POST',
data: { foo: 'bar' },
params: { id: '14' }
};
const { response, error, isLoading } = useAPI(url, axiosConfig);
if (error){
return <Error />
}
if (isLoading){
return <Loading />
}
return (
<div>
{response.data.map(item => <span key={item.id}>{item.text}</span>)}
</div>
)
}
```
- [useAPI](https://react-api-hooks.abwalters.now.sh/reference/use-api/)
- [useParams](https://react-api-hooks.abwalters.now.sh/reference/use-params/)
- [useInfAPI](https://react-api-hooks.abwalters.now.sh/reference/use-inf-api/)
![](https: