When not to extend
Prefer the built-in hooks when they fit: useMemo with an equals option covers most derived state; useEffect with the two-stage form covers most side effects;…
Prefer the built-in hooks when they fit: useMemo with an equals option covers most derived state;
useEffect with the two-stage form covers most side effects; useStore covers nested mutable data;
useSelector covers keyed boolean selection; mapArray, For and Index cover lists. Reach for extend for
a new kind of cell or computation, a new ownership pattern, or a renderer-level component. The extend
surface is lower level and has fewer guard rails: for example, createSignalNode does nothing about writes in
memos until you call writeSignal.