I know this is a fairly common question, but I feel like this stuff is pretty dynamic, and things fall in/out of fashion over time.
So here it is: I am an aspiring front-end web developer (eventually full stack, but focused on front-end for the time being). I feel pretty comfortable with HTML5, CSS/Sass, and I know enough JavaScript to get by.
I am an adult student doing the self-teaching route, and while my grasp on vanilla JS isn't stellar, I feel like it would be a good idea to start incorporating a framework into my learning. I just have no idea which to choose. To be honest, Svelte looks the best to me, BUT I am looking to be marketable in the future, so it's probably best to start with a more popular framework.
React seems to be the obvious answer popularity-wise, but I want to hear updated opinions from people in the field. While I haven't completely defined my focus, I like creating UI's and really have fun with CSS/Sass.
Thanks in advance, and I hope you're all having a great and safe weekend.
I am glad you like Svelte! and I am glad you didn't listed Angular.
I would go with my point of view, if you're considerably new to javascript, I would consider to focus on sharpening those skills. You will need them in order to build anything with those 3 options. You may be surprised how important is to get into the market, so, I would recommend 2 options: * Vue.js has a lot of acceptance nowadays, it's robust enough and ecosystem grows and thrives. Also I consider by my own experience the simplest to learn. Nonetheless, in my experience I don't see vue thriving as much as react. * React.js is the most popular, the one that would probably teach you best javascript and probably for. new learners the least simple to learn. However, once you get it, you would never look back and wonder why you took the decision. React.js is not going anywhere, it would be the option to choose for quite long time. Has wide market acceptance and ecosystem is fantastic.
You could always learn them at the same time tho! It's really up to you! Have fun
While it's hard to recommend any framework/library, I'd recommend you start with something that is relatively popular and has a little more maturity. I recommend react because it is arguably the most popular out of the three, so you'll easily find support, and most importantly, a job with this. Vue is a good second option, and also great to learn. To my knowledge, it was actually created by some of the original devs of React. Not sure if that's actually true or not. On to Svelte. This one is actually really great, and I love the approach they took with doing all of the "dirty work" at compile-time. The problem is that it's relatively new, not as mature, and while you're never guaranteed to find a job with any language/framework, your chances are considerably less.
All of this being said, while I do recommend what to start with, just to get yourself into the industry. My personal recommendation for your future career, and just for fun, is to learn them all.
I started with Vue/Nuxt before I had strong general JS skills. I was forced to learn React for a project and it wasn't hard to pick up after learning Vue. Once you learn one of the major frameworks, you can transfer those skills to the others without too much effort. They're all doing basically the same thing (they're all essentially MVC component libraries) but with different conventions.
React is the most popular right now, despite having the worst DX of the three. For a newcomer, my recommendation would be to either 1) focus on React/Next, and push through the higher learning curve or 2) start with something more comfortable like Vue/Nuxt or Svelte/SvelteKit, then learn React/Next to be more marketable. It won't hurt you to have another library/framework in the skills section of your resume.
This is most important: as a newcomer, whatever library you choose, start with the framework. For Vue, start with Nuxt. For React, start with Next, etc. For me, it was MUCH easier to learn Vue using Nuxt and single file components than it would have been to learn the Vue library by itself.