Lesson 2 exercises

Del 1: useEffect - sortera listan

Följande komponent laddar in en lista med produkter från en API-tjänst. Listan är sorterad i fallande ordning.

Lägg till en knapp som man kan klicka på för att växla mellan sortering i stigande och fallande ordning.

Några steg på vägen

import { useEffect, useState } from "react";

export const UseEffectSorting = () => {

    const [ data, setData ] = useState([]);

    useEffect(() => {

        const loadData = async () => {
            const res = await fetch('https://fakestoreapi.com/products?sort=desc');
            const data = await res.json();
            setData(data);
        }
        loadData();

    }, []);

    return (
        <ul>
            {data.map(item => <li key={item.id}>{item.title}</li>)}
        </ul>
    )   
}

Del 2: Parallell hämtning av data

Fortsätt på koden från ovan. Lägg till ett ytterligare api:anrop för att hämta kategorier.

fetch('https://fakestoreapi.com/products/categories');

Del 3: useIsMobile

const [width, setWidth] = useState(window.innerWidth);

useEffect(() => {
  const handleResize = () => setWidth(window.innerWidth);
  window.addEventListener('resize', handleResize);

  // Uppstädning körs när komponenten unmountas
  // eller när dependencies ändras
  return () => window.removeEventListener('resize', handleResize);
}, []);
const isMobile = useIsMobile();