
I'm currently employed as a JavaScript Developer. I still feel I need to work more on advanced JS. But as time goes I cant wait to get my hands on NodeJS - as it's my dream to be a full stack developer. Along the way I want to improve and learn advanced AngularJS.
But I also see ReactJS and React Native are getting a lot of fame. Will it be good for me if I just stick with AngularJS and NodeJS?
Why should you be worried? No one is stopping you from learning them all, are they? I'm a (Core java and JEEE) Java Developer by my job profile, but I work on Android, Node.js and some of the UI frameworks - ExtJs, AngularJs, React and even Haskell. In short, learn whichever you like.
No. You shouldn't be worried. You probably need to learn one more technology. Angular and React both are good, but they aren't suitable for every possible app out there. Here is what I think.
Angular
If my app is a Dashboard, Admin Panel or Customer portal kind of stuff I will definitely go with Angular. I have been doing Angular for last 1 year and I really like it. The only scenario where it falters is when you want your app to be indexed by crawlers. I know Google now executes JavaScript in your pages. But you will still face problem in Facebook, Twitter, LinkedIn and other social media. As a result you will be forced to use a service like Prerender.io or a library like PhantomJS which is the biggest set back for me. So, my verdict will be - If you have been doing Angular and feel comfortable with it then you should probably use it for developing apps that don't need to be crawled - i.e. Admin Panels, Dashboards etc. For other types of apps, use React + Flux.
React + Flux
React works as a view technology and doesn't assume anything about the rest of your tech stack. So, React combined with Flux architecture will give you a solid foundation to develop powerful apps. No doubt the performance of React is pretty solid. But the main benefit of using React is : Server Side Rendering, which you can't do with AngularJS. With React + Browserify + Node.js you can create apps that render on both client and server. So, you have all the benefits of a SPA and as a bonus your URLs are also crawlable by bots/search engines. All in all, you get the best of both the worlds which is called an Isomorphic app.
So, this is purely a personal view point. I have learned both React and Angular and I use each one wherever I feel appropriate.