Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "ngrx"
-
Here is a visual representation of Angular using NgRx
I think that its quite apt ....
I couldn't post the pic that i wanted to post because i'm sure that this site has some decency guidelines and i don't want to get kicked out1 -
Redux and ngrx look like a good way to do what you already do in a more verbose way and with a lot of boilerplate.
I love the idea of keeping the state of the whole app and the single source of truth, but... why so verbose? It's almost more the time spent to write boilerplate code than the time spent writing "productive" code1 -
Yearly angular rant.
I am doing since 2023
https://devrant.com/rants/10263715/...
and yep, angular is still shit in 2025
And still maintaining a high level, business critical, giant angular set of web portals, and some more projects with an angular UI that has to do with AI projects.
Of course not my choice, I'm forced to use this pile of steaming shit.
Year by year they keep releasing a new version and I always hope they get their shit togheter.
Every year is worse.
Instead of fixing this half-baked, ill-fated, broken clot of hacks rigged togheter, they keep adding cosmetic shit and useless no-one-asked ever features.
They added signals when there are not 1, but 2 mature, battle-tested frameworks (rxjs, ngrx) that already do it better.
They added @if @else etc etc. syntax after 10 years people were telling them that using that shit *ngIf and ng-container and templates was a shitty hot mess.
The whole change detection system is still the worst, clunky designed, cake of shit, requiring for real world applications to juggle with change detection services, change detection policies and control value accessors, which basically forces you to reinvent the most complicated wheel ever for what a ton of other frameworks already do out of the box without getting you bald from hair-pulling late-night hours.
Even AI can't fathom it. Give it to Copilot, GPT, Claude or whatever, and as soon as you get something more complicated than a form that sends a class to the backend or some mapping classes they will flip up, get all worked up and write completely utter shit that doesn't work.
I won't get into the projects details but I had to build some complicated UI and it has baffled me what fucking triple backflips I had to write to make some UI elements work smooth.
Jesus, why the fuck people keeps unleashing this pile of shit on me?
Why is it even used? There are a TON of healtier alternatives.
As of 2025, my christmas wish is still to have an 1v1 with angular devs in an octagon to shove my fist in their skull to check out what kind of twisted donkey shit is in there.
Seriously some improductive dumbass framework here, and if you like it, you're a shit programmer.16 -
I'd like to hear from developers which prefers Angular to React the reason of said preference.
I want to hear that becasue I like React way more than Angular since I find which is easier to learn (making a form with a React hook is easy while it takes days just to get a grip on Angular forms), it usually takes less code to do things, it doesn't force libraries which may not be necessary for your use case and just makes your bundle bigger (for example most things which are done in NgRx can be done just as easily with regular JS promises without the need of an external tool) and I generally prefer functional programming to OOP.
Said that I want to hear the other side, not to argue but because I want to know cases in which Angular may be a better choice than React to become a better rounded dev.10 -
No mother fucker, I don't give a fuck about you wanting me to reinvent the fucking wheel to do state management. I'll just use NgRX like any sane guy and just handle it with stores.
I don't fucking care if you're my Angular teacher and never heard about NgRX stores.
I don't even fucking know why I'm still in this fucking course to begin with.7 -
Fuck Redux/ngrx. I'm done, I can't get my head around this ugly shit. All I wanted was to load/save api data in a clean way and display a loading indicator now and then. But definitely not multiplying my entire code base by 10. Actions, Reducers, Effects. What is this?! Fuck that rocket science.5
-
Not a rant!
Anyone who worked with Angular 4 with ngRX 4 interested in lending a helping hand. I an stuck with some error from past 36hrs.
😥14 -
(I know this rant won't gather much attention, maybe there are just a bunch of people that know Redux and still less that used it in Angular).
I feel so bad, really, I just want to throw everything against the wall. I really hate ngrx, I hate redux and how it's de facto implemented in Angular. I talked with other developers and everyone around says that redux is hated only by people that don't understand it, and well, maybe it's stupid, but I hate it.
It's so different from Angular plain programming, why the hell I need to create a index.ts file? It looks so wrong.
Why the hell import * as reducer, why don't you just import the reducer?
Why do you need a switch statement? Really? We're in 2018, languages as python removed it, in the era of reactive programming why don't you just map a key to a function?
Why so many files? Why for a 20 rows module I've to write 5 files each of them twice longer?
Why so much boilerplate? The time spent at implementing everything will be ever gained back?
Why does everything looks so wrong?3 -
I'm having problems understanding ngrx (or simply rxjs...), once again.
I have a feature state called "World".
This state has three Actions: Init, InitSuccess and InitFailure.
Also I have other isolated feature states like "Mountains", "Streets", "Rivers".
They have actions like this and corresponding effects to fetch data: Load, LoadSuccess, LoadFailure.
Now I would like to add an effect to WorldActions.Init, which will dispatch Mountains.Load, Streets.Load, Rivers.Load one after another. So ideally an action log would look like this:
1. World.Init
2. Mountains.Load
3. Streets.Load
4. Rivers.Load
5. Mountains.LoadSuccess
6. Streets.LoadSuccess
7. Rivers.LoadSuccess
8. World.InitSuccess
Or when an error occurs:
1. World.Init
2. Mountains.Load
3. Mountains.LoadFailure
4. World.InitFailure
How could an effect pipeline for that look?
How can I dispatch World.InitSuccess only after all LoadSuccess-Actions have happened?
Or am I still trying to implement ngrx in a wrong/bad way?
PS: The reason I am putting everything into separate feature states is because "Mountains" etc. are standalone features on their own. Only in the context of a "World" they belong together. For this reason I can't create a monstrous effect "World.Load", without producing redundant code.10 -
I hate react-redux boilerplate code and NgRx boilerplate codes too. How to avoid boilerplate code or minimize it?
I've heard about zustand but it is quite new. Legacy apps mostly use react-redux with lots of boilerplate codes.5 -
To angular users: I still didn't try NgRx. Is it a better pattern than managing state with services, even for small apps?