React

Component (TSX)

tsx
type Props = { title: string };

export function Header({ title }: Props) {
  return <header><h1>{title}</h1></header>;
}

useEffect pattern

tsx
import { useEffect, useState } from "react";

export function Clock() {
  const [t, setT] = useState(() => Date.now());
  useEffect(() => {
    const id = setInterval(() => setT(Date.now()), 1000);
    return () => clearInterval(id);
  }, []);
  return <time>{new Date(t).toLocaleTimeString()}</time>;
}