Comment by dmitriid
5 years ago
> The thing I like most about react is that it’s just executing plain Javascript most of the time.
Then explain what hooks do ;)
Hooks are decidedly not Javascript (even if they look like Javascript), and are a much more weird construct than {#await promise}
No, they are JavaScript, it is array based programming wrapped in a reactive functional-declarative approach. Simply array of objects cascading with state. {#await promise} is more cryptic than any useHook function implementation.
> No, they are JavaScript, it is array based programming wrapped
Javascript has no support for array-based programming.
So, hooks are not Javascript: they look like regular function calls, but:
- they can only be declared and called before rendering
- they can't be called out of order
- they cannot be called conditionally
- they have to be called a specific name to be handled correctly by React runtime
- some (but not all of them) require dependency lists that determine how they are invoked
> {#await promise} is more cryptic than any useHook function implementation.
usEffect documentation is something like 20 pages long. The use of {#await promise} is immediately understandable from the code example, and its entire documentation fits on a page and a half
They are definitely javascript. I can click to definition of the useEffect function and see exactly what it is doing.
I completely agree that learning them is a bit crazy, but ultimately every hook comes down to being a function execution.
2 replies →