When to Keep Things in the Component

When to Move Things Out

Example:

// calculateTotal.ts
export const calculateTotal = (items: Item[]): number => {
  return items.reduce((acc, item) => acc + item.price, 0);
};

Example:

// useFetchData.ts
import { useState, useEffect } from 'react';

export const useFetchData = (url: string) => {
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch(url)
      .then(response => response.json())
      .then(data => setData(data));
  }, [url]);

  return data;
};