DEV Community


Discussion on: Why Are There So Many Javascript Frameworks, And How Do I Choose The Best One?

kosich profile image
Kostia Palchyk

Incurable disease has lots of treatments
an old saying (if I remember it right)

As I understand the current situation: we have so many frameworks because we don't know how to do it right. Every framework tries it's own slightly different approach, though there are things common to most frameworks*:

  • components

    Modern frameworks choose components as their building blocks. Everything from a whole page to a simple username badge can be a component. Components can be nested and reused.
    A component would define how it should be rendered via either template (angular et al) or via virtual DOM (react family).

    Also, components usually have lifecycle events, like mount, update, and unmount that help you define your logic more precisely.

  • state management tool
    Nowadays almost every framework has it (redux, mobx, ngrx, etc)
    That's just a way to structure data relations in your application. You have one component that requests username and you need several other components to access it? — put username to that state management tool and let other components read from it.

Generally speaking, that's it. The differences are minor, though they might seem huge at first glance.

Pick any popular one and try it. Maybe, search for a job you'd like to apply to and see what skills they are looking for. Among frameworks, React is the most popular one, so it should be among safe options.

Also, since you're just starting your JS journey — it'd be very helpful to learn common JS practices as well. And, I guess, learning promises is a must. (Unless you pick Angular — then you can jump to Rx right away)

The end. Happy coding!

* Well, JS based ones. Well, those few that I know. Hm, with exceptions surely.

P.S. I assumed you were asking for a front-end framework because there are several back-end JS frameworks too 🙂

P.P.S. I've been doing front-end for a while now, and neither do I know all frameworks, nor feel comfortable that there are so many of them.