App.js Code:
import { useState, useEffect } from 'react';
const App = () => {
  const [resourceType, setresourceType] = useState("posts")
  const [loading, setloading] = useState([])
  // useEffect(() => {
  //   console.log("resource type changed");
  // }, [resourceType]) 
  // useEffect(() => {
  //   console.log("on Mount");
  // }, []);
  useEffect(() => {
    setloading([]);
    async function fetchData() {
      const res = await fetch("https://aksh-crud.azurewebsites.net/api/v1/");
      console.log(res.status)
      const data = await res.json();
      setloading(data)
      return data;
    }
    fetchData();
  }, [resourceType]);
  return (
    <>
      <div>
        <button onClick={() => {
          setresourceType("posts")
        }}> Posts </button>
        <button onClick={() => setresourceType("Users")}> Users </button>
        <button onClick={() => setresourceType("Comments")}> Comments </button>
      </div>
      <h1> {resourceType} </h1>
      <h4>{loading.length === 0 ? (<pre> Loading...</pre>) : (
        loading.map((item, index) => {
          return <pre key={index}> {JSON.stringify(item)} </pre>
        })
      )}</h4>
    </>
  )
}
export default App;
    
    
 
 
 
  
  
  Output Image

  
  
  App.js Code :-
import { useState, useEffect } from 'react'
const App = () => {
  const [windowWidth, setwindowWidth] = useState(window.innerWidth);
  const handleResize = () => {
    setwindowWidth(window.innerWidth);
  };
  useEffect(() => {
    window.addEventListener("resize", handleResize);
  }, []);
  return (
    <>
      <h1> {windowWidth} </h1>
    </>
  )
}
export default App;
    
    
 
 
 
  
  
  Output Image :-

  
  
  App.js Code :-
import { useState, useEffect } from 'react';
const App = () => {
  const [resourceType, setresourceType] = useState("posts")
  const [loading, setloading] = useState([])
  useEffect(() => {
    console.log("outside return");
    setloading([]);
    async function fetchData() {
      const res = await fetch("https://aksh-crud.azurewebsites.net/api/v1/");
      const data = await res.json();
      setloading(data)
      return data;
    }
    fetchData();
    return () => {
      console.log("inside return ");
    }
  }, [resourceType]);
  return (
    <>
      <div>
        <button onClick={() => {
          setresourceType("posts")
        }}> Posts </button>
        <button onClick={() => setresourceType("Users")}> Users </button>
        <button onClick={() => setresourceType("Comments")}> Comments </button>
      </div>
      <h1> {resourceType} </h1>
      <h4>{loading.length === 0 ? (<pre> Loading...</pre>) : (
        loading.map((item, index) => {
          return <pre key={index}> {JSON.stringify(item)} </pre>
        })
      )}</h4>
    </>
  )
}
export default App;
    
    
 
 
 

Thank You.
You can follow us on:
Youtube 
Instagram
             
              
Top comments (0)