Client-Side Data Fetching with the useQuery Hook

Demonstrate the use of React Query's useQuery hook to fetch data on the client-side and display it in a component, handling loading and error states.
import { useQuery } from 'react-query';
import React from 'react';
Import React and the useQuery hook from React Query.
const fetchData = async () => {
  const response = await fetch('');
  if (!response.ok) throw new Error('Network response was not ok.');
  return response.json();
Define a fetchData function that fetches data from a URL.
function ExampleComponent() {
  const { data, error, isLoading } = useQuery('dataKey', fetchData);

  if (isLoading) return <div>Loading...</div>;
  if (error) return <div>An error has occurred: {error.message}</div>;

  return (
      <pre>{JSON.stringify(data, null, 2)}</pre>
Use the useQuery hook to fetch data inside a functional component. Handle loading, error, and success states.