State and events

Remember values with useState and respond to clicks.

State is data that a component remembers. Changing it through its setter makes React draw the component again.

React (JSX)
import { useState } from "react";

export default function Counter() {
  const [count, setCount] = useState(0);
  return (
    <button onClick={() => setCount((c) => c + 1)}>
      Clicked {count} times
    </button>
  );
}

Never change state directly. Make a new value instead, so that React can see the change.

React (JSX)
setSkills([...skills, "React"]);                 // add
setSkills(skills.filter((s) => s !== "CSS"));    // remove
setUser({ ...user, city: "Erode" });             // update one field
โ† Props and listsForms โ†’