| ▲ | b_e_n_t_o_n 17 hours ago |
| Hooks are also just JavaScript functions...? |
|
| ▲ | slmjkdbtl 16 hours ago | parent | next [-] |
| Based on how they are run they are completely not just ordinary JavaScript functions, hook era components are also not just JavaScript functions, it's a very complicated system. React calling them "just functions" is untrue, just marketing buzz words, and it leads developers into traps. |
| |
| ▲ | b_e_n_t_o_n 15 hours ago | parent | next [-] | | Many functions can only be called in a certain context. Calling them "not functions" is misleading imo because it implies those functions are compiled out or something, like `$state()` in Svelte. | | |
| ▲ | slmjkdbtl 15 hours ago | parent [-] | | Yeah they themselves are functions but how they're called are managed by a complicated system, I think treating them as a separate new concept is less misleading than calling them plain functions | | |
| ▲ | b_e_n_t_o_n 14 hours ago | parent [-] | | Well they aren't plain functions, they're like lifecycle methods for the component with an implicit `this`. Perhaps that's how they should be described. |
|
| |
| ▲ | Izkata 5 hours ago | parent | prev [-] | | > React calling them "just functions" is untrue I'm pretty sure this is also untrue. AFAIK React has never used that phrase (and at the very least, I can't find it anywhere official right now), it came from other people convincing newcomers that hooks aren't something more complicated like objects (comparing to class-based components). React has always treated them as special functions, hence always prefixing them with the word "use". | | |
| ▲ | slmjkdbtl 3 hours ago | parent [-] | | > it came from other people convincing newcomers Yeah I think you're right |
|
|
|
| ▲ | thomasfromcdnjs 16 hours ago | parent | prev [-] |
| They kind of are not though, you can't call them out of order and other things which is checked at runtime by the React "engine" and will stop script execution. If they were regular functions you could call them anytime. |
| |
| ▲ | b_e_n_t_o_n 15 hours ago | parent [-] | | Many "regular" functions are context dependent. | | |
| ▲ | DangitBobby 14 hours ago | parent [-] | | They are context dependent, must execute in the same order every time, and must be called every time the component re-renders (i.e., they do not support conditional calls). They have enough gremlin rules that calling them "just functions" is unhelpful for reasoning about using them. |
|
|