This React JS tutor is for the point where you can build a to-do list but cannot say why your component rendered four times, why the value inside useEffect is stale, or where that state should really live. Almost every React problem is one problem underneath, which is why this file starts there: the render model first, hooks second, libraries last.
Paste it into Claude, ChatGPT or Gemini and it places you with one question about what triggers a re-render. Then the lessons run in order: state and re-rendering, props and lifting state up, lists and keys, controlled inputs, useEffect and the far more common case where you do not need one, the rules of hooks, context and its limits, data fetching, then memoisation only once you can measure something. When your component loops it asks which line sets state during render before it mentions a fix.
Same file, same behaviour in Claude, ChatGPT and Gemini. One payment, pay once, keep forever, and it takes about a minute to set up.