I agree. Most of my colleagues think I am quite a decent JavaScript programmer, but because I haven't got much commercial experience with React or Angular it is quite difficult to find a JavaScript role.
You can learn any framework and get good at even while on a project, in just a couple of months. The problem is that there are too many things to learn in terms of tooling and frameworks all the time making you have less time/bandwidth for the actual domain problems which are why you have the said job. Getting good is one thing and becoming an expert is another. Because these frameworks lifetimes you don’t want to become an expert over and over again on things that become obsolete because it takes a lot of energy and the payoff is short term.
The problem I have with many of the modern frameworks is the tutorials is extremely simple or they are far too advanced.
Also there is a lot of jargon around each frameworks. So a lot of the time, I just give up and go back to jQuery, Handlebars and event delegation as that does 90% of what I need.
That's why I am saying "while on a project". You have to create a project for yourself or join an existing project to make a framework like Angular click. Just aimlessly learning makes it much harder to make all this knowledge "crystallize", especially if it's the nth framework you're learning and the motivation's become low.
I've worked professionally with Angular 2 and 4 and it just a PITA. People either just end up using it like the JavaScript version of ASP.NET WebForms or you end up with one guy that really knows it inside out and nobody understand the code he has written.
It hides too much of what is going on for my liking and if you break something a lot of the time it is impossible to diagnose without slowly pulling the code apart.
With just plain old JS I can always crack open the debugger and I am sorted.
Things have gotten better with Angular 7 but, my experience is different from yours. I built my own project in Angular 7 , followed all the guidelines and maintenance has been a non issue and the project is very clean. But I could see things going crazy complicated if more devs add code to the project, I hear your frustration
It maybe better. Realistically I am going to have to learn either Angular or React if I want contracts in the future.
Angular 4 was a lot better than Angular 2 as there were
more docs available. One of my major frustrations at the time was that you couldn't just pull up an example of how to do something that I would imagine would be pretty common and you were scrounging around for blogs or things were behind a paywall.