codete what is reactjs complete overview main 12fbfe4a8c
Codete Blog

What is React.js? Complete Overview

Borys Palka f3091b20dd
Szymon Oleszek 467db1354e

05/10/2021 |

5 min read

Borys Palka,

Szymon Oleszek

React.js is making headlines, and more and more people, intrigued with its possibilities and immense popularity, ask questions like „What is React?”, „What is React used for”, and, first and foremost, „Is React a framework or library?”.

As Stack Overflow’s annual 2020 Developer Survey indicated, React belongs to the most popular technologies software developers utilize. It ranked second in the „Web Frameworks” category, with as much as 36.8% of professional developers utilizing it.

Also, React.js was dubbed the second „most loved” web framework, with an impressive percent (68.9%) of software developers who are developing with it that have expressed interest in continuing to do so in the future.

 

Table of contents:

1. What is React js? All you need to know about it

2. React.js – the most important features

3. Apps that you can build in React.js

4. How to use React in your projects best


 

1. What is React js? All you need to know about it

Is react a framework, a library, or maybe another kind of technology? Well, the answer is quite unambiguous. React.js is a free open-source JavaScript library for building user interfaces in web applications. It was created by Facebook and Jordan Walke in 2013.

What sets this front-end library apart are low entry barriers and significant elasticity in use, which certainly add to its great popularity. Compared to Vue.js and Angular, the interest in React is way bigger in almost all world regions. And, what’s crucial, it is on the sharp rise, as the data on Stack Overflow trends show.

But what are the reasons why React is king? Which features make React software so unique and handy, at the same time? Let’s check.

2. React.js – the most important features

There are several features of React that can be regarded as especially useful and valuable for front-end developers taking advantage of this library. These are:

1. Virtual DOM (Document Object Model) tree – it is a representation of browser DOM objects in JavaScript that helps optimize the application’s performance. Based on the comparison (a process called reconciliation), it renders new objects in the browser or updates the old ones - because manipulation directly on DOM objects is inefficient.

2. Components – this is the encapsulation of the code’s logic into smaller blocks upon which we may build the entire application later on. UI components may be divided into class and functional ones. Render method belongs to the most used ones in the case of React components.

3. JSX (JavaScript XML) – an embeddable XML-like syntax extension to ECMAScript, or the format of writing HTML and XML code within the JavaScript language. This syntax is to be concise and familiar, and it’s made for „defining tree structures with attributes”.

4. React hooks – those are JavaScript functions that embed logic, and new functionalities in other hooks or functional components. They organize code within particular components and enable using React without classes. Previously, only class components had component lifecycle status and management. By the way, check out the React Hooks series on YouTube delivered by Codete developers. Here's the intro to React Hooks > 

3. Apps that you can build in React.js

React js development has been used in a number of commonly used apps. It’s not only Facebook, React’s originator, that makes use of this library. The list of popular apps made in React.js is much longer and encompasses household names such as Netflix, Instagram, WhatsApp, and Dropbox, to name but a few.

But there are many more use cases possible, and, in fact, any app can be built in React. However, React.js mainly focuses on building client-side applications, the so-called single-page applications. But it can also be used to create server-side rendering applications. What’s more, mobile applications for iOS and Android and even desktop ones can also be built with React - with user interface in mind.

4. How to use React in your projects best

Have you ever wondered when to use React js, what types of projects it is best fitted to? Well, there are some insights that it’s good to get acquainted with before you switch to React and start using it in your endeavors.

Since it is a library, and not a full-featured and full-fledged framework, such as Angular, taking part in another project is often equal to applying different approaches and solutions. And this means more time to understand the application for new developers and increasing the chance of creating an anti-pattern in the project, which can also translate into less effective development. Plus, if someone doesn’t like to have a clear-cut architecture and rules for running projects, React may not be the best option.

On the other hand, when in the right hands, React’s flexibility offers many great possibilities, like the fact that we can use different libraries and packages more easily to create React apps. We can swiftly and freely apply various approaches, e.g. Styled components, CSS-in-JS, CSS modules or even plain CSS, Redux, Mobx, Recoil, and more.

The enormous React community and popularity of developing with it is certainly also a plus because it increases the probability that someone will help us with a problem that we may encounter one day. However, there are some voices that the documentation for React is rather poor and insufficient, and that using JSX may be inconvenient.

And what are your experiences with React.js? To you, what are the challenges of developing with it? What kind of projects is it best suited to? Can you spot any significant limitations of using it?

Rated: 5.0 / 1 opinions
Borys Palka f3091b20dd

Borys Palka

In theory, a medical physicist with a love for coding. In practice, a front-end developer who was absorbed by web technologies like they were Kirchhoff's perfect black body. He got his first job as a software developer in 2017 (with Angular2 and Typescript). With constant acceleration, he has moved to the event horizon of the “black hole” of IT. After being totally absorbed, he’s reached the excited state when he wants to radiate his passion and knowledge. A bit of a geek with a wide spectrum of interests from martial arts, through pixel art, to the game industry.

Szymon Oleszek 467db1354e

Szymon Oleszek

Engineer passionate about building stuff displayed in the browser window but not only. Almost like Iron Man in software development, so maybe Software Man?

Our mission is to accelerate your growth through technology

Contact us

Codete Global
Spółka z ograniczoną odpowiedzialnością

Na Zjeździe 11
30-527 Kraków

NIP (VAT-ID): PL6762460401
REGON: 122745429
KRS: 0000983688

Get in Touch
  • icon facebook
  • icon linkedin
  • icon instagram
  • icon youtube
Offices
  • Kraków

    Na Zjeździe 11
    30-527 Kraków
    Poland

  • Lublin

    Wojciechowska 7E
    20-704 Lublin
    Poland

  • Berlin

    Bouchéstraße 12
    12435 Berlin
    Germany