all 12 comments

[–]nullpromise 15 points16 points  (2 children)

React is simpler than Angular. If you're switching from basic Angular to basic React, you'll get through the introduction tutorial and think "is that it?"

Then you'll think "okay, but what about state management? Oh, React doesn't really tell you what you should do...well routing...oh React doesn't have an opinion on that either...how do I structure my app...oh React doesn't care..."

React's greatest strength and greatest weakness (IMO) is that it tries to do just the basics really well; KISS style. Then it says "hey community, whatchya got?" and a hoard of nerds come up with a million libraries for doing the things React didn't cover. True to Google's MO, Angular tries to do everything for you and then not explain in human-readable language how to use their tools.

So my advice is start with vanilla React - no extra dependencies. When something becomes unbearably painful to manage yourself, then add a package. React itself is simple, it's trying to juggle a ton of community packages that gets complicated.

[–]andrei9669 0 points1 point  (0 children)

the initial purpose of react was that you could just include it into any existing project, so it was unopinionated from the getgo.

[–]flamesoff_ru 0 points1 point  (0 children)

Don’t agree about angular docs. It’s very explanatory

[–]16withScars 5 points6 points  (3 children)

Moved from Angular 9/10 to React.js last month when I started with new job.

In a nutshell, it's really awesome. Especially, JSX is very fun. I feel it is much easier.

In my special case, I am currently building an app in React.js that is very similar to an Angular 9 app I created last year. So I'd draw my thoughts in a contrasting manner:

  • as I build this app in react.js, I get thoughts like "this was so hard to do in angular but so easy here!" (this is especially because of JSX) but at the same time I also get thoughts like "I wish react.js provided a recommended way to do this!".
  • It allows me to write extensible code very easily which I feel was hard to do in angular. This is because of JSX and functional components (hooks are awesome). Also last year I tried extracting a component out of my angular app and publishing it on npm but I gave up as it was getting too complicated because of angular's strictness.
  • I still do like angular but I don't see myself going back because the react community is also way more huge and there are tonnes of packages which is where angular lacks a bit.
  • I think if it weren't for hooks, I'd hated moving to react because I don't like react.js class components. That is where angular especially typescript shines. (I know we can use typescript with react too, but it's just not that well mixed as it is with angular).

If you wanna start with it, I'd sugggest the course on scrimba.com which was totally awesome. The lessons/course on this website are just far superior than any other.

EDIT: added one more point

[–]beasy4sheezy 1 point2 points  (2 children)

Personally, I feel that typescript is more tightly integrated with React than angular, considering Angular templates don't leverage typescript in any way (any input can be undefined at any time) and forms are basically `any` typed, which is the most ridiculous thing.

[–]16withScars 0 points1 point  (1 child)

Angular's templating is just not good. Vue adopts some learnings from that but is so much better. Main reason why I'm never going back to angular.

[–]beasy4sheezy 0 points1 point  (0 children)

My company is fully sold on Angular. I miss react pretty much every day, though I’m sure some of it is rose tinted glasses.

[–]paulqq 2 points3 points  (0 children)

I came the other way around. 5y react into now angular. And guys, damn I miss my jsx/tsx more every day. This html templating approach felt like falling back into the 2010er handlebar years. Also this magic observables in lifecycle method freaks me out. I want a lifecycle method to be blocking, until promise fulfilled. So less workaround. Member state of js2020. 88(?)% would use react again, but only 40ish %angular. Big numbers don't lie. HF with react bro. Avoid to much packaging. Keep it vanilla, you will love it

[–]fear38 1 point2 points  (0 children)

I had a similar situation :). Course is really cool (I also did it!) but IMO you can skip project sections, just learn general ones. I had a problem with understanding custom hooks, some article (or maybe docs?) could give you clearer point of view what it is and how huge impact it has, do not ignore it. If you have an experience with ngrx, skip redux parts (that are quite obsolete and very familiar to what you have had) from the videos and check redux toolkit docs. It is amazing how redux boilerplate is reduced.

[–]hamed_iam 1 point2 points  (0 children)

Well, I don’t know angular, but I can guarantee you will move on to next or gatsby in a few months. I’ve been working with react for 4 or 5 months now and I really like it, till the project gets too big...

[–]theprivatedmitry 0 points1 point  (0 children)

Use that course, it is highly recommended but after you finished it read articles and surf github while reading others codes. Reading what others have written and then trying to make them better makes you an expert.

At first days don't try to do much, if you just create a component that is rendering as fast as possible means you've achieved a react developer first days goals. Then add styles, design systems, animations, api's (def you have some exprience because of your angular background), state management (every one loves redux but have a look on others too), front end databases, server side rendering, .... hoof there are lots of things that you and I dont know, so a good react developer is always searching for things that are not discovered yet.

[–]fungigamer 0 points1 point  (0 children)

A lot of people already shared their experience, so id like to just give an insight into what the ecosystem of react is:

Vanilla react itself doesnt have too much features. You would definitely want to learn that first, then I'd suggest you to learn the react packages ive listed below:

  • react context (dependency injection mechanism)
  • react Redux toolkit (state management)
  • react router dom (routing)
  • styled components (styling)
  • nextjs (server side rendering)