What Is React And Why React Is So Popular

React is a JavaScript library that is used to build web user interfaces and components. In other words, React is used to build the front end of websites that includes web pages, their layouts, and content. A typical website has a frontend and backend. The frontend of a website that is what its users see and interact with when they load a website in their browser on desktop, laptop, or mobile devices. The backend of a website is where its data is stored and served from. The third component of a website is a communication mechanism, a API or a library that is used to access data from the backend to the frontend and store back to the database.
 
React, originally known as ReactJS or React.js was developed by Jordan Walke at Facebook and was initially used to develop Facebook feed in 2011. It was later used to develop Instagram in 2012. In year 2013, React was open sourced and now it is maintained by the React open source community with the help of Facebook via its website, reactjs.org.
 
The initial public release of React in May 2013 was open sourced under the Apache License 2.0 license but with major community backlash and feedback on Sept 26, 2017, React 16.0.0 was released under the MIT license.
 

React is a JavaScript library for building user interface.

 
React was developed by Facebook to create modern, fast, and interactive user interfaces for the Web. Today, React is the most popular JavaScript library to build web front ends. In other words, in a typical web application architecture, React is responsible for the visual user interfaces and rendering of the data to the browser only.
 
Some of the popular websites that are used by hundreds of millions of users per day that are developed in React includes Facebook, Instagram, Netflix, Uber, WhatsApp, Venmo,PayPal, Reddit, Salesforce, Airbnb, Dropbox,The New York Times, CNN, and Flipboard.
 

Why use React?

 
Why is React so popular? If you look at various JavaScript based front end frameworks and libraries, React separates itself by keeping it simple. React, compare to other popular JavaScript based frameworks such as Angular, React is simple to learn and write. React focuses on the user interface portion of a web application only.
 

React is declarative, component-based, and extensible.

 
React is declarative, component-based, and extensible JavaScript library.
 
What Is React
 
React is declarative
 
React is declarative that helps create interactive user interfaces straight forward. React is used to design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable and easier to debug.
 
React is simple yet powerful
 
ReactDOM is the DOM engine of React that makes is not only simple to write and render but also powerful. You can pretty much create HTML on the fly, pass data from JS to HTML, and render entire HTML as an element using ReactDOM.
 
React is component-based
 
Components are building blocks of react pages. A page can have multiple components. Each component can manage their own state and represent a part of a page and can have its own data source. You can easily pass rich data through your app and keep state out of the DOM.
 
React supportsserver-side
 
React can also render on the server using Node. Node (previously Node.js) has become a popular method of writing JavaScript based service side programming.
 
React supports mobile development
 
React Native is growing rapidly and becoming a primary programming language to write native mobile apps. React developers can use their existing skills to build mobile apps using React Native.
 

Features of React

 
Let us look at some of the key features of React.
 
Simple to learn
 
Simplicity is the key reason of React being popular. React focuses on building front-end user interfaces only and mix well with vanilla JavaScript, and HTML. React is easier to learn as long as you are familiar with HTML and JavaScript. React apps can be developed using most of the popular tools such as Visual Studio Code. Developers coming from other web technologies can easily adopt React.
 
Faster to render
 
Elements are the smallest unit of a React app. Think of an element as a variable that can store some value. Here is an example of a React element.
  1. const hello = <h1>Hello React App</h1>;  
Elements are easy to create and they are cheap to render. Not only elements are cheap but they also provide control and flexibility on how these elements are rendered.
 
Unlike browser DOM that manages the rendering of a web page, rendering elements in React is managed by React DOM. ReactDOM.render() is used to render an element.
 
JSX
 
JSX is a key part of React and makes React a powerful and flexible library. JSX stands for JavaScript XML. JSX allows developers to write HTML in React. JSX makes it easier to write and add HTML in React. Here is an example,
  1. const hello = <h1>My React App</h1>;  
As you can see that this code, its not HTML, not a string. This is JSX syntax that allows to store HTML <h1 /> tag in a constant string, which is React. In other words, we can store plain HTML in React variables. React is a syntax extension to JavaScript. JSX produces React “elements”.
 
While JSX is not required to write React apps, it is recommend using it to create user interfaces. Think of JSX as a template language.
 
Here are some of the key properties of JSX,
  • JSX is like XML that is easy to understand and write.
  • JSX can be sought as a template language.
  • JSX represents objects.
  • JSX is an expression.
  • JSX prevents injection attacks.
Virtual DOM
 
React DOM is another key element of React apps. React DOM is responsible for checking the previous states of the elements and only updates elements are passed to the browser DOMs. That helps app rending process faster. Hence the performance of the app.
 
Components and states
 
React allows you to build encapsulated components that manage their own state, then compose them to make complex UIs. Each component renders without affecting other components and part of a page. Since component logic is written in JavaScript, you can easily pass rich data through your app and keep state out of the DOM.
 
Components in React are reusable and can be reused in different parts of an app. Each component has its own code, login, and state. Refreshing one component does not affect the performance of other components.
 
Extensibility
 
React plays nice with other libraries and frameworks. You can also use React in an existing Web application without changing much.
 

What is the current version of React?

 
The current version of React is 17.0. The Release Candidate of v 17.0 was announced on Aug 10, 2020. While this version does not have any new developer focused features. Here is from the release notes.
 
The React 17 release is unusual because it doesn’t add any new developer-facing features. Instead, this release is primarily focused on making it easier to upgrade React itself.
 
We’re actively working on the new React features, but they’re not a part of this release. The React 17 release is a key part of our strategy to roll them out without leaving anyone behind.
 
What is the download size of React?
 
One of the major concerned developers have is the library download size on the users’ browsers. While there has not been any change in the size in version 17.0, the following are the details from the previous version, 16.0. 
  • Size of React version 16.0.
  • react is 5.3 kb (2.2 kb gzipped).
  • react-dom is 103.7 kb (32.6 kb gzipped).
  • react + react-dom is 109 kb (34.8 kb gzipped).

Salary of React developers

 
Today, React is the most popular and in-demand front-end development library. A majority of large corporations, startups, and businesses are either using React or planning to hire React developers. React developers are also one of the highly paid developers compare to similar technology. If you’re a Full Stack Developer with React (MERN stack – MongoDB, Express, React, and Node), you can easily get a job in any metropolitan area.
 
Entry level React developers make between $43,500 to $111,000. Average nationwide React Developer Salary is $80,48 but in large metros such as Boston and New York, MEAN developer salary can be more than $125k a year.
 
What Is React
 

How do learn React?

 
If you are new to React and want to start learning, here is a free learn series to learn React. In this learn series, you'll learn the following topics,
  • Introduction To React js
  • Folder Structure In React
  • React Components
  • React JSX And Hooks
  • State In React
  • Destructuring And Event Handler
  • Event Handler And Methods
  • Conditional And List Rendering
  • React Styling and CSS
  • React Forms
  • React Components Lifecycle
  • Fragments And Pure Components
  • Memo And Refs
  • Portal And Error Boundaries
  • Higher Order Component
  • Render Props And Context
  • HTTP And React
  • React Hooks
Start learning React here, React.js for Beginners.

What is React Native?

 
React Native is a React based framework write a cross-platform native mobile apps. If you’re familiar with React and JavaScript, you will find React Native easy to learn and adopt. React Native was developed by Facebook and open source community and has become one of the primary cross-platform languages to write native iOS and Android mobile apps. 

Where can I learn React Native?

 
C# Corner offers a dedicated section on React Native. Here is a list of step by step tutorials to learn React Native.
  • Introduction to React Native
  • An Introduction To React Native
  • How To Install React Native - A Step By Step Guide
  • Routing/Navigation In React Native-App
  • Components In React Native Apps
  • State And Props In React Native Application

Conclusion

 
React is the most popular, open-source, modern JavaScript library to build front end web interfaces. Over years, React has used to build high-performance, scalable web interfaces such as Facebook, Instagram, WhatsApp, Netflix, and Uber.In this article, you learned basics of React, its history, React features, and where you can learn React.
 
React developers who are involved in building back-end development can use Node to build backend sever side applications.
 
React developers can use their existing skills to build native mobile apps using React Native.
 
References
 
https://reactjs.org