From Fetch to Axios: A Comprehensive Guide to Data Fetching in React

Mohamed Zihan
3 min readFeb 2, 2024

Introduction

In today’s web development landscape, consuming REST APIs is a fundamental skill for React developers. This article will guide you through the basics of fetching data from REST APIs in React, comparing two popular methods: fetch and Axios. Whether you're building a simple application or a complex web platform, understanding these tools is crucial for effective data handling.

1. The Difference Between Fetch and Axios

Fetch API :

  • Native Browser API: Available in modern browsers, no external library required.
  • Promise-based: Makes it easy to handle asynchronous operations.
  • Syntax: Slightly more complex for handling responses and errors.

Axios :

  • Third-party Library: Requires installation via npm or yarn.
  • Automatic JSON Conversion: Automatically transforms request and response data into JSON.
  • Error Handling: More straightforward error handling compared to fetch.
  • Interceptors: Allows you to intercept requests or responses before they are handled by then or catch.
  • Wide Browser Support: Includes built-in support for older browsers.

When to Use Each

  • Use fetch for simpler applications or when you want to avoid external dependencies.
  • Use Axios for more complex applications, better error handling, and additional features like request cancellation.

2. How to Fetch Data Using Fetch

Fetching data with the Fetch API involves sending a request to a URL and handling the response.

Here’s a simple example:

useEffect(() => {
fetch('https://api.example.com/data')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('Error fetching data:', error));
}, []);

Key Points:

  • Error Handling: Check if the response is okay before proceeding.
  • Parsing JSON: Use .json() to parse the response body into JavaScript objects.

3. How to Fetch Data Using Axios

Axios simplifies the process of fetching data with built-in JSON conversion and easier error handling.

Here’s how you can use it:

First, install Axios:

npm install axios

Then, you can use it in your React component:

useEffect(() => {
axios.get('https://api.example.com/data')
.then(response => console.log(response.data))
.catch(error => console.error('Error fetching data:', error));
}, []);

Key Points:

  • Automatic JSON Parsing: Axios automatically parses the JSON, so you can directly access response.data.
  • Simplified Error Handling: Errors are more straightforward to handle, thanks to Axios’s API.

Conclusion

Choosing between fetch and Axios depends on your project needs and personal preference. Both methods are effective for consuming REST APIs in React, but they come with their own set of advantages and nuances. By understanding these tools, you'll be better equipped to make the right choice for your next project.

If you have any project ideas or need assistance with web development tasks, please don’t hesitate to get in touch:

WhatsApp & Telegram: +94 776636973

Web: https://zihan.vercel.app/

Email: mohamedzihan45@gmail.com

LinkedIn: https://www.linkedin.com/in/mohamed-zihan/

Feel free to reach out, and I’ll be glad to discuss your requirements and explore collaboration opportunities!

Thank you for taking the time to read this article. I hope you found it informative and helpful in your web development journey!

--

--

Mohamed Zihan

Undergraduate of University of Moratuwa, Faculty of Information Technology