News for hackers. Stuff that matters.
Re:Introducing Hooks by Aeolun on Friday October 26, 2018 @12:34AM (#18306804)
Just a FUCK-TON of boilerplate :P
Re:Introducing Hooks by AlexCoventry on Friday October 26, 2018 @12:37AM (#18306812)
You say boilerplate, I say simple declarative layout of the boundaries between UI, state and state transitions. :-)
Re:Introducing Hooks by acemarke on Friday October 26, 2018 @01:23AM (#18306961)
People use the word "boilerplate" a lot, but everyone seems to have something different in mind when they say it. What specific concerns do _you_ have? I'm a Redux maintainer, and I'm always happy to try to help offer possible solutions.
Re:Introducing Hooks by Aeolun on Saturday October 27, 2018 @09:11AM (#18315548)
I don’t really think there is a way around it if you go with the action/reducer/saga model.

I enjoy my code fairly explicit, so writing a button click that invokes some request has me writing:

- A click handler

- 3 new action name consts (request, success, failure)

- An action instantiation function that takes the necessary arguments for request.

- A saga function that catches these request actions, runs a request, and invokes the success action/failure action depending

- 3 handlers in my reducers. One for every action.

It all adds up if you have a ton of buttons :P

Re:Introducing Hooks by acemarke on Saturday October 27, 2018 @03:58PM (#18317401)
Sagas are a great power tool, but I personally wouldn't use them for most simple API requests, largely because of the need for "signal actions" to trigger the logic.

You might want to check out our new `redux-starter-kit` package [0], which can simplify some common use cases for things like action creators and reducers. There's also many other existing libraries to handle repetitive code like API requests as well [1].

[0] https://github.com/reduxjs/redux-starter-kit

[1] https://github.com/markerikson/redux-ecosystem-links/blob/ma... , https://github.com/markerikson/redux-ecosystem-links/blob/ma...

Re:Introducing Hooks by Aeolun on Saturday October 27, 2018 @07:55PM (#18318353)
I think you need to use sagas for either all your logic, or none of it. Having it half/half just means you’re always searching for where something is located.

That said, thanks for the recommendations! I’ll check them out.

Re:Introducing Hooks by acemarke on Saturday October 27, 2018 @09:25PM (#18318651)
FWIW, I use sagas _and_ thunks in my own app, depending on what it is I need to do.

Also related, the new Redux FAQ entry on choosing between async middlewares: https://redux.js.org/faq/actions#what-async-middleware-shoul...

Re:Introducing Hooks by sdegutis on Saturday October 27, 2018 @01:09PM (#18316648)
This is exactly the thing we need fixed. I get that Angular has one way of doing it, but I still feel like it's going in the wrong direction (too Java-like).