4 ms·
What's with the copy paste spam on every one of your posts? None of what you're saying matters in the scheme of things. You can get everything you need from
by weeksie 6y ago
What's with the copy paste spam on every one of your posts?
None of what you're saying matters in the scheme of things. You can get everything you need from
const { types, actions } = createActions([ 'ACTION_NAME', ...]);
Where createActions is an exercise for the reader, but shouldn't take more than a few lines. Then go about your business from there. Adding another layer of framework over the top of this stuff only obscures what's going on under the covers.
The middleware approach is more straightforward than thunks and far more maintainable. Reifying that as "best practice" is only going to continue to spread this anti-pattern because no real application is about "just grabbing some data for a bit" and inevitably that one api call expands into many, not to mention all of the other side effect related and asynchronous functionality that one has to deal with in user interfaces.
- acemarke 6y agoOr, with `createSlice`, you get the action creators for free with your reducers: const todosSlice = createSlice({ name: 'todos', initialState: [], reducers: { addTodo(state, action) { const { id, text } = action.payload state.push({ id, text, completed: false }) }, toggleTodo(state, action) { const todo = state.find(todo => todo.id === action.payload) if (todo) { todo.completed = !todo.completed } } } }) export const { addTodo, toggleTodo } = todosSlice.actions export default todosSlice.reducer You're welcome to your own opinion, but we've designed RTK based on how we've seen the community use Redux, and built it to solve the problems they're dealing with.
- weeksie 6y agoI see what you’re doing there. I also see why you think it’s a good idea. "How the community" uses redux is badly. I guess congrats for reinforcing that at scale. Gives me some more hours to bill when I run across the next ratsnest.
- pault 6y agoCan you provide some examples of a better way to use redux? The react and redux toolchain is so flexible I'm always interested to see what ways other people come up with to use it.
- weeksie 6y agoI have a copy paste dump that I did a few months back to show someone how I was working, happy to pass that along. I wouldn't make claims that the way I'm using things are the best but so far I've been happy with the general approach. There's a simple createActions and a more complex one that handles namespacing. https://gist.github.com/weeksie/04f41329d0015e2128209df9f9de7c3c https://gist.github.com/weeksie/04f41329d0015e2128209df9f9de... I skimmed the debounce middleware from this guy Nir Kaufman who has some pretty good things to say about front end architecture. Generally with Redux we have a system that can absolutely provide real event-driven CQRS style front end so it seems crazy to ignore that in favor of managing async thunks like it's 2004 and we've all just discovered how to put an XMLHTTPRequest on an onclick handler or something. Outside of that core.effects file, I put all of the async app logic in custom middleware as well. YMMV but using a framework for replacing const declarations and switch statements is overkill. The broader point is that if you're going to create utilities like that, it's often worth just rolling your own. When you attach a core part of your application to a framework you've signed up for the ride. I realize it seems like I'm being an asshole to acemarke, who appears to be a perfectly lovely dude, if a little passive-aggressive, but I sincerely feel like pushing libraries for problems that shouldn't require libraries is making our ecosystem worse.
- isakkeyten 6y agoHe's been doing it for a while now. I believe he has setup some google alerts on the words 'redux | thunks | sagas' and he just brings his redux toolkit gospel along. And not just on this site, like, everywhere. Dev.to, reddit, twitter... I've confronted him once but to no avail, I even got downvoted by the community. :) https://www.reddit.com/r/reactjs/comments/fvuwpl/handling_side_effects_in_redux_reduxsaga/fmmxx12/?utm_source=reddit&utm_medium=web2x&context=3 https://www.reddit.com/r/reactjs/comments/fvuwpl/handling_si... edit: i see that's happening to you too here lol, godspeed
- siquick 6y agoThey are one of the maintainers of Redux Toolkit (which has made Redux so much nicer to work with)
- acemarke 6y agoHonestly, the only alert I have is a Tweetdeck search for hashtag `#redux`. Other than that, I just spend too much time on social media :)
- wolco 6y agoI would shorten the copy to be more effective.
- weeksie 6y agoHaha yeah. Evangelists, man. Ah well, what can you do.