As you can see, React is far ahead of other frameworks and is used much more often. At the same time, industry experts note gaining popularity in frameworks like Svelte, Ember, and Preact. In the meantime, experts tend to argue that these front-end frameworks can be well suited for small applications while requiring more work when developing large ones.
When analyzing the number of package downloads, we see slightly different statistics. NPM trends shows us stats over the past year, where we still see React leading the way, with Vue.js ranking second and Angular at the bottom of the trio.
So why are React, Vue.js, and Angular the most popular frameworks year after year?
JS Framework Comparison
|Baseline||Library to build Excellent UI||A high-performing framework||A framework that has all the good functions of React and Angular|
|Model||Based on Virtual DOM||Based on Incremental DOM||Based on Virtual DOM|
(+ TypeScript support)
(Duration for creating 1,000 rows)
|152.8 +- 2.6|
|158.3 +- 1.7|
|Mobile app development||React Native||NativeScript||Vue Native|
|Learning Curve||Has good documentation and in general allows you to start using it pretty quickly. But it does not provide many features out of the box, so you need to search and study additional libraries||A deep learning curve. Has a really wide range of features out of the box, but complex documentation. You also need to write a lot of boilerplate code||A small learning curve with basic programming knowledge. Has good documentation and enough features out of the box. So it will be easier to develop an app from scratch, compared to React|
|Community Support||Has strong support from Facebook||A large community of developers and supporters; good and consistent|
support from Google
|Open-source project sponsored through crowd-sourcing|
Svelte appeared in 2016. Today, some developers believe it can replace React as the main JS resource. Svelte is component-based (HTML, CSS, and JS) and lightweight, written in TypeScript. At the same time, it does not require full knowledge of TypeScript to use it. Svelte features top-notch support of reactivity, which improves performance without using the Virtual DOM and makes rendering the fastest of all JS frameworks.
Even with these advantages, it is still young, lacking a wide range of features and a sufficient number of use cases. It also has a small community and poor documentation.
React is a front-end library that uses the virtual DOM to improve the performance of applications of any size that require regular content updates. React is based on one-way data binding. This provides better control over the entire project.
The main companies that use React are Instagram, Facebook, Netflix, the New York Times, Yahoo, WhatsApp, Airbnb, Dropbox, Reddit, and more.
Angular is a more traditional framework that offers a two-way data-binding process. Angular has played a key role in popularizing TypeScript. This framework is focused on reliability and stability and is great for large enterprise applications.
You will do the right thing by choosing Angular when developing a large and feature-rich application, real-time applications (such as chats), and native and hybrid applications, which are long-term and large-scale investment projects. Angular is the most secure client-side web platform and offers a high level of control.
Angular is used by PayPal, Sony, The Guardian, Upwork, Google, Skyeng, and others.
It's better to turn to alternative solutions if your team has little experience with heavy back-end frameworks or if speed is critical to your project and performance and SEO is crucial.
Vue is a young JS framework designed to solve the problems developers face when working with Angular and React. It consists of all the good stuff in React and Angular, so it uses reactive two-way data binding (Angular), Virtual DOM, and Event Sourcing (React).
Opt for Vue when you need fast, high-performance applications, you are looking to develop a PWA or modernize a large enterprise application, and when development speed and low barriers to entry are key parameters. It’s also a good choice if SEO is super important to you.
Here are some of the companies that use Vue: Alibaba, Grammarly, GitLab, and Nintendo.
Vue is not suitable for large enterprise applications or for use on multiple platforms.
Angular is suitable for applications with different deployment goals, especially if it is a large, feature-rich application that needs to scale. If you're aiming for a lightweight PWA, Vue is the perfect solution. React can be used for any type of application; however, it is better to choose it for SPAs and mobile applications. For example, for SPAs, you can make a separate single-page application framework comparison. Also, you can contact us to get comprehensive information about the correct SPA framework comparison.
Since Angular is a massive framework covering everything from project creation to code optimization, it is the most complex framework to deploy in general. Compared to Vue, app development is fast and easy, making it ideal for startups. Development in React also takes a fair amount of time, although it is easier to scale the architecture with than Angular.
Google has ambitious plans for Angular and is actively strengthening the support and development of this framework. React has strong support from Facebook and is constantly testing its functionality in real time, as Facebook is one of the largest apps. Vue is still an open-source project, which means that it cannot boast of such advantages.
It appears that not everyone knows that in python you can create classes dynamically without metaclasses. I'll show an example of how to do it.So we've learned how to use custom QuerySet to chain requests:Article.objects.old().public()Now we need to make it work for related objects:user.articles.old().public()This is done using use_for_related_fields, but it needs a little trick.
Django ORM is a very abstract and flexible API. But if you do not know exactly how it works, you will likely end up with slow and heavy views, if you have not already. So, this article provides practical solutions to N+1 and high loading time issues. For clarity, I will create a simple view that demonstrates common ORM query problems and shows frequently used practices.