
Ask HN: What do you think about React Hooks? - lsm
Link here: https:&#x2F;&#x2F;reactjs.org&#x2F;docs&#x2F;hooks-intro.html
======
salvoravida
My 2c on the hooks cause: [https://github.com/salvoravida/react-class-
hooks](https://github.com/salvoravida/react-class-hooks)

Use Custom Hooks with React Class Components. Compatible React >= 16.0.0

------
dreamdu5t
At first glance, hooks are hard to reason about. They encourage changing pure
functions into stateful functions that return different results depending on
when they were called.

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?

~~~
acemarke
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.

~~~
ncphillips
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.

~~~
trixn
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.

