DEV Community

AKSH DESAI
AKSH DESAI

Posted on

2 1

react useEffect() Hook (Web Dev Simplified)

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;
Enter fullscreen mode Exit fullscreen mode

Output Image

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;
Enter fullscreen mode Exit fullscreen mode

Output Image :-

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;

Enter fullscreen mode Exit fullscreen mode

Output Image

Thank You.
You can follow us on:
Youtube
Instagram

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs