JavaScript library for building reusable UI components.
It is an open-source, component-based front-end library responsible only for the view layer of the application.
It was created by Jordan Walke, who was a software engineer at Facebook.
It was initially developed and maintained by Facebook and was later used in its products like WhatsApp & Instagram.
Facebook developed ReactJS in 2011 in its newsfeed section, but it was released to the public in the month of May 2013.
Today, most of websites are built using MVC (model view controller) architecture.
In MVC architecture, React is the 'V' which stands for view, whereas the architecture is provided by the Redux or Flux.
A ReactJS application is made up of multiple components, each component responsible for outputting a small, reusable piece of HTML code.
The components are the heart of all React applications. These components can be nested with other components to allow complex applications to be built of simple building blocks.
ReactJS uses a virtual DOM-based mechanism to fill data in HTML DOM. The virtual DOM works fast as it only changes individual DOM elements instead of reloading the complete DOM every time.
To create React app, we write React components that correspond to various elements.
We organize these components inside higher-level components which define the application structure. For example, we take a form that consists of many elements like input fields, labels, or buttons. We can write each element of the form as React components, and then we combine it into a higher-level component, i.e., the form component itself. The form components would specify the structure of the form along with elements inside of it.
Traditional Web application Development:-
In Traditional Web Applications, we use HTML, CSS, and JS Code to design UI under application, but in modern web development, we divide the application into two different sub-projects.
the first project contains API and database-related information and the second application contains FrontEnd Design.
React JS and Angular JS both are used to create modern Web application development using React and Angular Front End User Interface.
1) User Access Layer (UI/UX) ---->
HTML5, CSS, JS and Jquery
2) Business Access Layer
Java, .NET, PHP
3) Data Access Layer
Database related code based on technology for Java (JDBC), .NET (ADO.NET), etc
Modern Web Application Development:-
Modern Web applications divide the project into two different subparts.
The first, the part will be implemented by the Design Layer
The second part will be implemented for the Database and Code Layer.
1) User Access Layer and Business Layer:-
React or Angular
2) Data Access Layer
Create API using any Server Side Scripting.
What you should learn before REACT-JS?
1) JS, JSX, JS with ES6
2) Object-oriented JavaScript or JSX
What is MERN?
MERN Means
M ---> MONGO
E ---> Express JS
R ----> REACT JS
N ---> NODE JS
What is MVC Architecture?
MVC is the design pattern to distribute the project on different project layers, M stands for Model which is used to create the data access layer, V stands for View which is used to contain the design layer and C stands for Controller is used to contain business code of an application. React Js is used to create the View Layer of an application.
Installation of React-JS?
1) Install NODE JS in Machine
https://nodejs.org/en/download/
2) npm install react
if react is already present
npm view react version
3) npx create-react-app app-name
4) cd app-name
5) npm start
node_modules:- the base package of reacting that is used to contain all the libraries of a node JS.
public:-
it contains all assets of the project means js, CSS, and images files of an application will be implemented by the public folder.
src:- it means source, all application components will be defined under src folder. start-up file of
react application is index.js means when we call
any application then the first index.js file will be
called.
What is the flow of react js application:-
In react first index.html file will be loaded that will display the result of index.js and index.js file is the startup file that is used to call the app component of the application using app.js file.'
1) public ---> index.html (provide container to show APP Data)
2) result of a component)----> index.js(calling APP Data)
3) component) ----> app.js(component) (Create Ressable code)
"we should never write any code on .html, all code"
(design, business logic) will be implemented by the component.
What is a Component?
it is the business class or object of react js that is used to provide the design layer and code layer of an application.
react js is specially used to design single page applications and page components (header, sidebar, footer, content section) will be created by component.
type of component.
1) Function Component:-
function Functionname() {
return (
<div>
</div>
)
}
export default App;
export means public accessibility to component
Function Component Example:-
SI Component Example:-
How to call Multiple Components in React-JS:-
Note:- all exported components can be rendered by index.js.
How to create program logic using components?
Example of SI Program:-
2) Class Component:-
the class component is used to contain the program code of react component using class and object patterns.
it provides the class pattern to implement component code, we can create a separate section to initialize data members and form attributes under the constructor \and init block. we can implement all features of oop's to create
1) class-based component.
class Classname extends React. Component
{
render()
{
return (
)
}
}
Example of class based component in React-JS
Code of index.js
Addition program in REACT JS:-
Addition program using local instance variable
Addition Program using global instance variable:-
import React from "react";
export class Addition extends React.Component
{
state = {
a: 100,
b: 200,
c:0
};
constructor()
{
super();
}
render()
{
const { a, b } = this.state;
//console.log(this.state) ;
this.state.c=a+b;
return(
<div>
<p>{this.state.a+this.state.b}</p>
<p>{a+b}</p>
<p>{this.state.c}</p>
</div>
)
}
}
index.js file:-
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import {Addition} from './Addition'
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<Addition />
</React.StrictMode>,
document.getElementById('root')
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
JSX stands for JavaScript XML.JSX allows us to write HTML in React.JSX makes it easier to write and add HTML in React.
Coding JSX with HTML
JSX allows us to write HTML elements in JavaScript and place them in the DOM without any createElement() and/or appendChild() methods.
JSX converts HTML tags into react elements.
Example 1
JSX:
const myelement = <h1>Welcome in JSX!</h1>;
ReactDOM.render(myelement, document.getElementById('root'));
Example 2
Without JSX:
const myelement = React.createElement('h1', {}, 'I do not use JSX!');
ReactDOM.render(myelement, document.getElementById('root'));
Expressions in JSX
With JSX you can write expressions inside curly braces { }.
The expression can be a React variable, or property, or any other valid JavaScript expression. JSX will execute the expression and return the result:
const myelement = <h1>React is {5 + 5} times better with JSX</h1>;
Inserting a Large Block of HTML
To write HTML on multiple lines, put the HTML inside parentheses:
Example
Create a list with three list items:
const myelement = (
<ul>
<li>C</li>
<li>CPP</li>
<li>JAVA</li>
</ul>
);
Example
Wrap two paragraphs inside one DIV element:
const myelement = (
<div>
<p>I am a paragraph.</p>
<p>I am a paragraph too.</p>
</div>
);
JSX will throw an error if the HTML is not correct, or if the HTML misses a parent element.
Alternatively, you can use a "fragment" to wrap multiple lines. This will prevent unnecessarily adding extra nodes to the DOM. A fragment looks like an empty HTML tag: <></>. The fragment is the default container of react JS.
Wrap two paragraphs inside a fragment:
const myelement = (
<>
<p>I am a paragraph.</p>
<p>I am a paragraph too.</p>
</>
);
Elements Must be Closed
JSX follows XML rules, and therefore HTML elements must be properly closed.
Example
Close empty elements with />
const myelement = <input type="text" />;
Attribute class = className
The class attribute is a much-used attribute in HTML, but since JSX is rendered as JavaScript, and the class keyword is a reserved word in JavaScript, you are not allowed to use it in JSX.Use attribute className instead.
JSX solved this by using className instead. When JSX is rendered, it translates className attributes into class attributes.
Example
Use attribute className instead of class in JSX:
const myelement = <h1 className="myclass">Hello World</h1>;
Write .css block:-
Conditions - if statements
React supports if statements, but not inside JSX.
To be able to use conditional statements in JSX, you should put the if statements outside of the JSX, or you could use a ternary expression instead:
Option 1:
Write if statements outside of the JSX code:
Example
Write "Hello" if x is less than 10, otherwise "Goodbye":
const x = 5;
let text = "Goodbye";
if (x < 10) {
text = "Hello";
}
const myelement = <h1>{text}</h1>;
Option 2:
Use ternary expressions instead:
Example
Write "Hello" if x is less than 10, otherwise "Goodbye":
const x = 5;
const myelement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;
POST Answer of Questions and ASK to Doubt