Re:Ask HN: What do you think about React Hooks?
by acemarke on Saturday October 27, 2018 @12:59AM
(#18314425)
The first time the component renders, each individual call to `useState` results in a new unique-to-that-component state value being stored behind the scenes. React builds a linked list of all hooks attached to that function component the first time you run it, and then reads from that linked list in future re-renders. So, when you run it again, and `useState()` call #1 occurs, it reads the value and the setter function off the first linked list node, and returns those.
Re:Ask HN: What do you think about React Hooks?
by ncphillips on Monday October 29, 2018 @02:42PM
(#18330037)
This is so much more complicated than the class approach.
What's saved in lines of code is lost in expressiveness.
Feels like a step toward Ruby-like magic.
Re:Ask HN: What do you think about React Hooks?
by trixn on Friday November 02, 2018 @08:33AM
(#18362514)
I feel exactly the opposite is the case. Hooks can improve expressiveness a lot by helping developers to separate concerns and keeping logic that belongs together in a separate place.
While I understand the argument that hooks encourage to make dumb components stateful this is already the case with class based components. At the end of the day a developer is responsible for separating concerns of his application and he can fail to do so with class based components and hooks the same way.
Re:Ask HN: What do you think about React Hooks?
by danabramov on Thursday November 01, 2018 @05:54AM
(#18352409)
While I see why you might feel this way, I wrote an article about this and would appreciate if you give it a read. https://medium.com/@dan_abramov/making-sense-of-react-hooks-...
Immediately after seeing the first example, I'm left wondering what happens if I called useState(0) twice? Does it produce references to the same state object or two separate ones? Does it throw an error? I see "count" and "setCount" being destructured, but where are they defined? Through static analysis during a special build step, through getters, or what?