Too Long; Didn't Read
An alternative API is a bit verbose, but it is less computationally wasteful, more conceptually accurate, and it's framework agnostic. I propose an alternative API that is as capable, but with fewer caveats. Hooks are static through the lifetime of a component and should be declared on component construction instead of during the render phase. Hook's placement during a component's first render determines where the hooks must be found by React on every subsequent render. React uses lint rules and will throw errors to try to prevent developers from violating this detail of hooks. This becomes problematic when our components become bloated with lots of state and logic.