Join the DZone community and get the full member experience.Join For Free
Why Use a Framework?
However, most of the major frameworks are trying to solve one common use-case: how to build single-page web applications that can support complex user interactions and manage the state and business logic of the application on the front-end or the client.
In a nutshell, single-page applications, or SPAs, are web applications that can work on the client without constant page reloads.
Let us assume that you are a complete novice. You want to start learning front-end development and become a professional one day.
You have to learn a lot! There's no other way to put it. Definitely, it's a long, winding journey.
There is no escaping HTML and CSS. No matter what framework you use, HTML and CSS will almost always be there. So don't try and bypass them. You should learn how to create an HTML page and now to divide a page into sections. Focus on proper structure and don't worry about the beauty part just as yet.
CSS or Cascading Style Sheets is what adds the beauty to your ugly HTML pages. Learn as much as you can. It's vast and has so many options that you'll always find new things. If you want a list then learn CSS Grid Layout, Flexbox, Media Queries, and Responsive CSS. These things will help you with serious web development. Also, I recommend learning at least one CSS framework. If you aren't sure what to pick, I would recommend Bootstrap. It will help you build professional web applications with less CSS and some good design patterns. You can read more about it here.
Now, Phase 1 will be the same no matter what you do in the future. If you reach this far, you should pat yourself on the back for the success and introspect whether you want to even continue.
If you've decided to bravely continue on the journey, let me tell you upfront that the real fun begins now!
Learn Basic Git Stuff
Learn Package Managers
If you only had time to learn one, I would recommend npm, or node package manager. npm is the biggest and most widely used package manager; you can explore it here.
Another option is Yarn — if you understand one package manager, you won't find it terribly difficult to learn others.
The Big Decision
If you've made it this far, you're ready to take the plunge. But before you do that, you'll have to answer the big question.
There are many, but for the sake of discussion, I'll list the three major ones. In no particular order, they are React, Angular, and Vue.
Vue is another framework that became popular and apparently tried to tread a middle-line between React and Angular. Unless you have a pretty specific need that can be solved only by Vue, I would recommend going with Angular or React.
Having said that, I generally don't prefer backing one framework over another. A good developer is one who can select the framework or toolset based on the problem. Both React and Angular can do everything but they do certain things better than others. For example, form-handling in Angular is brilliant and really useful for enterprise applications that have lot of user interaction in terms of filling out stuff. React, on the other hand, is amazing if you have an extremely dynamic DOM and want a lot of manipulation based on user interaction.
In my opinion, I would recommend that if you have the time, you should try and learn both. It would open up your perspective and make you a better front-end developer.
If you've reached this point, you've come really far. You should be proud of yourself.
However, the journey doesn't end.
So learning should continue. Some things that you can look into are:
- Progressive Web Apps to make web applications work as native mobile apps.
- Tooling frameworks such as Webpack and Babel.
- ES6, ES7 syntax
- Various test frameworks like Jest, Karma, and Mocha.
- Server-side rendering using SPA frameworks.
The point is that you should keep learning. Where's the fun in stagnating?
Published at DZone with permission of Saurabh Dashora . See the original article here.
Opinions expressed by DZone contributors are their own.