I am just learning how to code and I think I have a decent grasp on things but do not think I could hold a job yet. I am intermediate in HTML, CSS, Swift but Javascript just passing knowledge.
Do I need to know JavaScript at a high level before diving head first into React? Is React just the flavor of the day and not worth the time? I heard some pretty big players are using it so I am thinking most answers will be no it's here to stay but I would like to get all your opinions!
Thanks!
I actually had to look up "fad"; I knew pretty much what it meant but I figured I should make sure we're all thinking the same thing about the term:
Fad (noun): an intense and widely shared enthusiasm for something, especially one that is short-lived and without basis in the object's qualities; a craze.
So now that I'm clear on the definition, I'd say it is half of a fad for sure, and the other half is really subjective and probably false. So I'll address both halves, and let you decide.
As far as the question of should you know JavaScript really well before diving into React; I would say you should dive into React if you know why you're using it. You don't need to be the worlds leading expert on JavaScript eccentricities to write great code, but you should have a general idea of what you're trying to accomplish when you sit down at your keyboard. I think you'll get the most out of React if you make your components as stateless and functional as possible, otherwise you're adding some complexity to your code that probably doesn't need to be there. So before you get into React I think it would be a good idea to understand a bit about the terms "stateless" and "functional", how that looks in JavaScript; and if that makes sense then you'll get a lot out of React.
I must disagree with the majority here.
Is React a fad? No. Fads are crazes that lack basis in their qualities and enthusiasm.
React is a tool that, for the time being, is one of the best answers to a set of complex challenges that are now facing UI engineers. As those challenges evolve over time it would be unreasonable to expect our tools to not evolve as well. React was engineered for a good reason and it's enjoying such wide usage because it contains the qualities that are needed. In other words, it's not a baseless craze but do expect it to change over time and eventually be replaced, like any tool.
I'd encourage you to be good at what you do, not merely satisfactory. Learn JS from top down and know how to use it without helpers. Then, learn React and as many other tools as you have time for, even if you have no plans to use them immediately. Being an engineer means having a hard and healthy work ethic. When you get a job you want your employer to genuinely feel like you're an indispensable part of the team. The more you know and can do the more you can help others and the open source community, and not just yourself. :)
Enjoy React!
Building apps is one thing, JavaScript is another. There's an intersection of both that people make apps in JavaScript. React is one way of building apps and we already see it in Web apps, in Android, in iOS, in Desktop, in Windows apps. So React is based on JavaScript and it's an implementation. I guess React may die one day very far from now. But the ideas come from React will live longer than that.
I think JavaScript is bad language with many nice features, you can choose a better if you have a choice. Meanwhile you need to be sure you can handle them problem in using React with enough JavaScript knowledges.
Every javascript framework and library is a fad. They are just tools to help you build things at scale.
So yes, learn the language from ground up, then use fads to make things more efficient.
One of my favorite things about React/Redux ecosystem is that it pushes you to learn a lot of best practices within javascript such as smart use of functional programming, immutability, and modularity.
Is it a fad? Well almost every javascript framework eventually feels like a fad because people are so crazy good at innovating on the frontend very quickly.
Last year everyone was complaining about this and saying they were getting javascript fatigue. I for one love the innovation and am excited about new developments, but it can become taxing feeling like as soon as you've picked up the new hotness, it's already old. Which is why javascript fundamentals are key to staying relevant and not getting too frustrated with the churn.
React has a pretty steep learning curve simply because of all the things you usually end up using in a project. React itself is relatively small but most everyone now uses React/Redux with a ton of middleware and addons to make development more scalable, and everyone is usually transpiling with babel/traceur to get ES6/ES2015 features.
Not to mention lots of boilerplates are using webpack which is its own beast. So I would definitely first focus on javascript (ES5) and then once you're comfortable with those basics I would move onto learning ES6/ES2015 features. Then getting into react or any other new framework coming out in the next few years won't feel so heavy to learn. You can see by inspecting this very site that they built it with react :D
Preface: Before learning any JS framework you need to have a solid understanding of the language. Period.
Now that I'm off my soap box, this is going to be a bit of a complex answer but here's TL;DR: React is a fad/flavour of the day but it's also here to stay and is an important tool.
So, before I get flamed to death, here's my reason why React is a fad/flavour of the day. It's new(ish). It's what all the cool kids are using; much like when Angular was the new hotness.
Now, does that mean React isn't worthwhile? Nope, not at all. React is getting people excited about developing in a new way much like the older SPA frameworks such as Angular did a few years ago. It's an important tool in an ever growing toolkit.
The rising React star like JQuery/Angular/etc. before it will decline. It's the nature of web development, but that doesn't mean you should ignore it. Web frameworks and technologies cycle and evolve and in 3-4 years we'll all be talking about SPLONK.JS or something that makes React look ancient by comparison. That doesn't mean that it's not worthwhile to learn it and just because something new and shinier comes along doesn't mean that React will suddenly stop working. Thousands of sites still use and are still being built in Angular 1 despite Angular 2 being more or less here.
So yes, React is the flavour of the day. All the best frameworks/libraries were at some point. Dive in, have fun, and add it to your tech stack. You'll only make yourself a better developer at the end of the day by expanding your horizons.
Just make sure you:
<soapBox>Have a solid understanding of JavaScript before trying to using any framework or library</soapBox>
I don't know how many times I've interviewed developers that think making an ajax call involves $.ajax() and have no idea what XHR is.
Frontend Engineer at Zapier
Pavan Mehta
JS Development and Everything in Between
Thankfully most of your React learning won't go to waste. It's much closer to ES6 (or ES5 if you write it that way) standards of Javascript than say Angular 1.x. So if it goes away or replaced by some other framework, you got the JS grip doing all the React. You need to have at least intermediate knowledge of JS to make React to good use. Go ahead and happy learning.