// Custom Hook const useProducts = () => { const [products, setProducts] = useState([]); useEffect(() => { fetch("/api/products") .then((res) => res.json()) .then((data) => setProducts(data)); }, []); return products; }; // Container Component function ProductContainer() { const products = useProducts(); return <ProductList products={products} />; } // Presentational Component function ProductList({ products }) { return ( <ul> {products.map((product) => ( <li key={product.id}>{product.name}</li> ))} </ul> ); }