@pavele/useaxios
v1.0.2
Published
Axios hook for react developers to easly handle REST API
Downloads
10
Readme
UseAxios
What's that?
It's hook for react developers to handle REST API. Based on popular axios library.
Installation
npm
npm install @pavele/useaxios
yarn
yarn add @pavele/useaxios
Axios
It's popular and reliable request library for js projects
Read more here: axios docs
Simple usage
import { useAxios } from '@pavele/useaxios';
const MyCoolComponent = (props) => {
const { request, response, error, loading } = useAxios(
{}, // optional, default axios parameters,
(response) => { console.log(response) }, // optional, define what should happen on success
(error) => { console.log(error) }, // optional, define what should happen on failure
(loading) => { console.log(loading) } // optional, define what should happen on loading state
);
const makeRequest() => {
// let's execute request
request(
{
url: 'http://myapiaddress.com
} // we pass axios params, use offical axios docs for more details
);
}
}
Case when you need to handle more than one request to API in a single component
Common case when you have a one component with few features that require to communicate with API
Let's assume you have a component that allow to save or remove a resource from API
We can define more than one hook, but we need to rename imported variables from hooks.
import { useAxios } from '@pavele/useaxios';
const MyCoolComponent = (props) => {
const { request: saveRequest, response: saveResponse, error: saveError, loading: saveLoading } = useAxios();
const { request: removeRequest, response: removeResponse, error: removeError, loading: removeLoading } = useAxios();
const saveResource(id, data) => {
request(
{
url: `http://myapiaddress.com/myresource/${id}`,
method: 'POST',
data: data
}
);
}
const removeResource(id) => {
request(
{
url: `http://myapiaddress.com/myresource/${id}`,
method: 'DELETE'
}
);
}
}