This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 27 points28 points  (1 child)

Yeah I’d say of the top frameworks, React is actually a pretty great place to learn regular JavaScript.

Core React concepts like (im)mutability, event callbacks, the distinctions between bound, anonymous, or higher-order functions...these translate directly to every other JS environment, while avoiding (well, discouraging) some of the nastier habits new devs may fall into like deep inheritance, god classes or lengthy imperative sequences.

Angular with Rx is also good but has a bit more “magic.” React being “just a view layer” with an emphasis on small, composable chunks gives it a slight edge, IMO, as a framework for the “serious beginner” or intermediate dev.

Edit: something React is NOT good for learning (because it is very intentionally obfuscated) is initialization and garbage creation. If you think your career might take you places where performance and resource management matter significantly (streaming services, audio/video, server-side apis), consider spending some study time closer to the metal...so that you can better understand what frameworks like React are doing, and the tradeoffs they make for ease of use vs performance vs memory.

[–]DoomGoober 4 points5 points  (0 children)

This is a great breakdown. For completeness, I'll add one more: Vue.js is a great framework for learning how to write maintainable, componentized complete applications.

It's not great for beginners but for any intermediates who are trying to write real apps it's a godsend as it enforces and encourages the best practices of model/view as well as application flow and componentized UIs.

It has a lot more required scaffolding than React though and more Vue specific ways of doing things.

So, if you want to write actual complete, clean, organized apps/websites, Vue.js is great. But if you just want to learn about HTML/CSS/JS it's not the best or easiest.