Wednesday, 12 August 2026

ReactJS

ReactJS(React):

-------

*ReactJS (React) is a popular JavaScript library for building user interfaces, 

*Especially for single-page web applications (SPAs). 

*It was developed by Facebook(now Meta)Software Engineer Jordan Walke.


React.JS History:-

-----------------

*Initial release to the Public (version 0.3.0) was in July 2013.

*Latest version of React.JS is 19.2.

*React.JS was first used in 2011 for Facebook's Newsfeed feature.


Features:-

--------

*React is a front-end JavaScript library.

*React is also known as React.js or ReactJS.

*React is a tool for building UI components.

*Reusable UI Components(Components based Architecture)

*use Virtual DOM(without loading page change contents)


Note:

 state --- Data

 props --- Data from parent to child

 JSX --- JavaScript XML   (HTML+Javascript+XML)

 React Hooks --- only functions not use in class

 Render --- Content change in Browser


Advantages:

----------

*Fast and efficient UI updates (Diffing Algorithm--minimum changes)

*Reusable components

*Easy to maintain large applications

*Large developer community

*Rich ecosystem of libraries

*Suitable for responsive and interactive web applications



ReactJS is commonly used for:

---------------------------

*E-commerce websites

*Social media applications

*Dashboards

*Single-page applications

*Online learning platforms

*Web portals

*Interactive forms and interfaces

*ReactJS helps developers build fast, interactive, and reusable user interfaces using JavaScript components.



How to create ReactJS and Run:-

-----------------------

step1: Install Node.js(select chocolatey(npm(Node Package Manager) ,VSStudio))

step2: (open Command Prompt and check Version)

      node -v

      npm -v

step2: create a React Project

      1. open Command Prompt(Win+r---cmd)

      2. npm create vite@latest my-react-app

      3. Choose:

       a. Framework: React

       b. Variant: JavaScript

       c. Linter: ESLint (javascript code)   

      4. Then:          

        a. cd my-react-app

        b. npm install

step3: Start React

       1. npm run dev

       2. You will see something similar to:

          Local: http://localhost:5173/

       3. Open that address in your browser.

----------------------

(open already existing Reactjs):-

----------------------

Step1: Open command prompt

Step2: dir   (check your react project)

Step3 : cd path-to-your-react-project

step4 : npm install

step5 : npm run dev

        1. You will see something similar to:

           Local: http://localhost:5173/

        2. Open that address in your browser.

************************************************

JSX:-

---

*JSX stands for JavaScript XML.

*JSX allows us to write HTML in React.

*JSX makes it easier to write and add HTML in React.


step1 : Open App.jsx and type the following code(src folder)

-----

syntax for App.jsx:

--------------------

function App() {

    return (

      

     );

   }

export default App;


Ex1:

App.jsx:-

-------

  function App() {

    return (

      <div>

       <marquee><h1>Welcome to My React Program</h1></marquee>

       <p>My first React application</p>

      </div>

     );

   }

export default App;


Step2:

-----

main.jsx:-

-------

import { StrictMode } from 'react'

import { createRoot } from 'react-dom/client'

import './index.css'

import App from './App.jsx'


createRoot(document.getElementById('root')).render(

  <StrictMode>

    <App />

  </StrictMode>,

)


Step3:

-----

index.html:-

----------

<!doctype html>

<html lang="en">

  <head>

    <meta charset="UTF-8" />

    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>my-react-app</title>

  </head>

  <body>

    <div id="root"></div>

    <script type="module" src="/src/main.jsx"></script>

  </body>

</html>


Step4: Open that address in your browser.

       http://localhost:5173/

----------------------------------------

React Hooks

-----------

-Hooks allow functions to have access to state and other React features without using classes.

-Hooks are functions that let you "hook into" React state and lifecycle features from functional components.


Syntax:

------

const function_name=()=>{

  ....

  ....

};

----------------

Ex1: display message using Button click

function App() {

  const showMessage = () => {

    alert("Hello! This is a message.");

  };


  return <button onClick={showMessage}>Show Message</button>;

}

export default App;

---------------

Ex2: simple addition

function App() {

  const add = () => {

    const a = 10;

    const b = 20;

    const c = a + b;

    alert("Addition is: " + c);

  };


  return (

    <div>

      <button onClick={add}>Check</button>

      <h2>Addition</h2>

      <p>Click the button to see the result.</p>

    </div>

  );

}

export default App;

-----------------------------------------

Ex3: Addition of two numbers using textbox

import { useState } from "react";


function App() {

  const [num1, setNum1] = useState("");

  const [num2, setNum2] = useState("");

  const [sum, setSum] = useState(null);


  const handleAdd = () => {

    setSum(Number(num1) + Number(num2));

  };


  return (

    <div>

      <h2>Add Two Numbers</h2>

      <input

        type="number"

        value={num1}

        onChange={(e) => setNum1(e.target.value)}

        placeholder="Enter first number"

      />


      <input

        type="number"

        value={num2}

        onChange={(e) => setNum2(e.target.value)}

        placeholder="Enter second number"

      />


      <button onClick={handleAdd}>Add</button>


      {sum !== null && <h3>Result: {sum}</h3>}

    </div>

  );

}


export default App;

-----------------------

Ex3: Registeration Form using React

import { useState } from "react";


function RegistrationForm() {

  const [formData, setFormData] = useState({

    name: "",

    email: "",

    password: "",

    age: "",

  });


  const [submittedData, setSubmittedData] = useState(null);


  const handleChange = (e) => {

    setFormData({

      ...formData,

      [e.target.name]: e.target.value,

    });

  };


  const handleSubmit = (e) => {

    e.preventDefault();

    setSubmittedData(formData);

  };


  return (

    <div>

      <h2>Registration Form</h2>


      <form onSubmit={handleSubmit}>

        <label>Name: </label>

        <input

          type="text"

          name="name"

          value={formData.name}

          onChange={handleChange}

        />


        <br />

        <br />


        <label>Email: </label>

        <input

          type="email"

          name="email"

          value={formData.email}

          onChange={handleChange}

        />


        <br />

        <br />


        <label>Password: </label>

        <input

          type="password"

          name="password"

          value={formData.password}

          onChange={handleChange}

        />


        <br />

        <br />


        <label>Age: </label>

        <input

          type="number"

          name="age"

          value={formData.age}

          onChange={handleChange}

        />


        <br />

        <br />


        <button type="submit">Register</button>

      </form>


      {submittedData && (

        <div>

          <h2>Registration Details</h2>

          <p><strong>Name:</strong> {submittedData.name}</p>

          <p><strong>Email:</strong> {submittedData.email}</p>

          <p><strong>Password:</strong> {submittedData.password}</p>

          <p><strong>Age:</strong> {submittedData.age}</p>

        </div>

      )}

    </div>

  );

}


export default RegistrationForm;

-----------------------------------------

#simple register form and display

import React, { useState } from "react";

import "./App.css";


function App() {

  const [formData, setFormData] = useState({

    name: "",

    password: "",

    gender: "",

    hobbies: [],

    city: "",

    address: "",

  });


  const [submittedData, setSubmittedData] = useState(null);


  const handleChange = (e) => {

    const { name, value } = e.target;


    setFormData({

      ...formData,

      [name]: value,

    });

  };


  const handleHobbyChange = (e) => {

    const { value, checked } = e.target;


    if (checked) {

      setFormData({

        ...formData,

        hobbies: [...formData.hobbies, value],

      });

    } else {

      setFormData({

        ...formData,

        hobbies: formData.hobbies.filter((hobby) => hobby !== value),

      });

    }

  };


  const handleSubmit = (e) => {

    e.preventDefault();

    setSubmittedData(formData);

  };


  return (

    <div className="container">

      <div className="form-box">

        <h2>Registration Form</h2>


        <form onSubmit={handleSubmit}>

          <label>Name</label>

          <input

            type="text"

            name="name"

            placeholder="Enter your name"

            value={formData.name}

            onChange={handleChange}

            required

          />


          <label>Password</label>

          <input

            type="password"

            name="password"

            placeholder="Enter password"

            value={formData.password}

            onChange={handleChange}

            required

          />


          <label>Gender</label>

          <div className="options">

            <label>

              <input

                type="radio"

                name="gender"

                value="Male"

                onChange={handleChange}

                required

              />

              Male

            </label>


            <label>

              <input

                type="radio"

                name="gender"

                value="Female"

                onChange={handleChange}

              />

              Female

            </label>

          </div>


          <label>Hobbies</label>

          <div className="options">

            <label>

              <input

                type="checkbox"

                value="Reading"

                onChange={handleHobbyChange}

              />

              Reading

            </label>


            <label>

              <input

                type="checkbox"

                value="Music"

                onChange={handleHobbyChange}

              />

              Music

            </label>


            <label>

              <input

                type="checkbox"

                value="Sports"

                onChange={handleHobbyChange}

              />

              Sports

            </label>

          </div>


          <label>City</label>

          <select

            name="city"

            value={formData.city}

            onChange={handleChange}

            required

          >

            <option value="">Select City</option>

            <option value="Coimbatore">Coimbatore</option>

            <option value="Chennai">Chennai</option>

            <option value="Madurai">Madurai</option>

            <option value="Salem">Salem</option>

            <option value="Trichy">Trichy</option>

          </select>


          <label>Address</label>

          <textarea

            name="address"

            placeholder="Enter your address"

            value={formData.address}

            onChange={handleChange}

            required

          ></textarea>


          <button type="submit">Register</button>

        </form>

      </div>


      {submittedData && (

        <div className="display-box">

          <h2>Registration Details</h2>


          <p>

            <strong>Name:</strong> {submittedData.name}

          </p>


          <p>

            <strong>Password:</strong> {submittedData.password}

          </p>


          <p>

            <strong>Gender:</strong> {submittedData.gender}

          </p>


          <p>

            <strong>Hobbies:</strong>{" "}

            {submittedData.hobbies.length > 0

              ? submittedData.hobbies.join(", ")

              : "None"}

          </p>


          <p>

            <strong>City:</strong> {submittedData.city}

          </p>


          <p>

            <strong>Address:</strong> {submittedData.address}

          </p>

        </div>

      )}

    </div>

  );

}


export default App;

------------------------

#register form in table format

import React, { useState } from "react";

import "./App.css";


function App() {

  const [formData, setFormData] = useState({

    name: "",

    password: "",

    gender: "",

    hobbies: [],

    city: "",

    address: "",

  });


  const [data, setData] = useState([]);


  const handleChange = (e) => {

    setFormData({

      ...formData,

      [e.target.name]: e.target.value,

    });

  };


  const handleHobbies = (e) => {

    const { value, checked } = e.target;


    if (checked) {

      setFormData({

        ...formData,

        hobbies: [...formData.hobbies, value],

      });

    } else {

      setFormData({

        ...formData,

        hobbies: formData.hobbies.filter(

          (hobby) => hobby !== value

        ),

      });

    }

  };


  const handleSubmit = (e) => {

    e.preventDefault();


    setData([

      ...data,

      {

        ...formData,

        hobbies: formData.hobbies.join(", "),

      },

    ]);


    setFormData({

      name: "",

      password: "",

      gender: "",

      hobbies: [],

      city: "",

      address: "",

    });

  };


  return (

    <div className="container">


      <h1>Registration Form</h1>


      <form onSubmit={handleSubmit}>


        <table className="form-table">

          <tbody>


            <tr>

              <td>Name</td>

              <td>

                <input

                  type="text"

                  name="name"

                  value={formData.name}

                  onChange={handleChange}

                  placeholder="Enter Name"

                  required

                />

              </td>

            </tr>


            <tr>

              <td>Password</td>

              <td>

                <input

                  type="password"

                  name="password"

                  value={formData.password}

                  onChange={handleChange}

                  placeholder="Enter Password"

                  required

                />

              </td>

            </tr>


            <tr>

              <td>Gender</td>

              <td>

                <input

                  type="radio"

                  name="gender"

                  value="Male"

                  checked={formData.gender === "Male"}

                  onChange={handleChange}

                />

                Male


                <input

                  type="radio"

                  name="gender"

                  value="Female"

                  checked={formData.gender === "Female"}

                  onChange={handleChange}

                />

                Female

              </td>

            </tr>


            <tr>

              <td>Hobbies</td>

              <td>

                <input

                  type="checkbox"

                  value="Reading"

                  checked={formData.hobbies.includes("Reading")}

                  onChange={handleHobbies}

                />

                Reading


                <input

                  type="checkbox"

                  value="Music"

                  checked={formData.hobbies.includes("Music")}

                  onChange={handleHobbies}

                />

                Music


                <input

                  type="checkbox"

                  value="Sports"

                  checked={formData.hobbies.includes("Sports")}

                  onChange={handleHobbies}

                />

                Sports

              </td>

            </tr>


            <tr>

              <td>City</td>

              <td>

                <select

                  name="city"

                  value={formData.city}

                  onChange={handleChange}

                  required

                >

                  <option value="">Select City</option>

                  <option value="Coimbatore">Coimbatore</option>

                  <option value="Chennai">Chennai</option>

                  <option value="Madurai">Madurai</option>

                  <option value="Salem">Salem</option>

                  <option value="Trichy">Trichy</option>

                </select>

              </td>

            </tr>


            <tr>

              <td>Address</td>

              <td>

                <textarea

                  name="address"

                  value={formData.address}

                  onChange={handleChange}

                  placeholder="Enter Address"

                  required

                ></textarea>

              </td>

            </tr>


            <tr>

              <td colSpan="2">

                <button type="submit">

                  Register

                </button>

              </td>

            </tr>


          </tbody>

        </table>


      </form>


      {/* Display Data */}


      {data.length > 0 && (

        <div className="result">


          <h2>Registration Details</h2>


          <table className="data-table">


            <thead>

              <tr>

                <th>Name</th>

                <th>Password</th>

                <th>Gender</th>

                <th>Hobbies</th>

                <th>City</th>

                <th>Address</th>

              </tr>

            </thead>


            <tbody>


              {data.map((item, index) => (

                <tr key={index}>

                  <td>{item.name}</td>

                  <td>{item.password}</td>

                  <td>{item.gender}</td>

                  <td>{item.hobbies}</td>

                  <td>{item.city}</td>

                  <td>{item.address}</td>

                </tr>

              ))}


            </tbody>


          </table>


        </div>

      )}


    </div>

  );

}


export default App;

--------------------------

*************************************

Database connectivity 

---------------------

-Connect between Frontend and backend

 Backend--------------------------------------------Frontend

 (Node.js + Express POST API + MySQL)              (ReactJS)


-ReactJS cannot directly connect to a database like MySQL, MongoDB, or PostgreSQL

-Instead, you need a backend API (Node.js/Express, Python/Django, PHP, etc.) that connects to the database securely,

Ex: 

     React.js → Node.js/Express API → MySQL


Project Structure:

-----------------

1) 

my-app/

├── frontend/     # React

└── backend/      # Node.js + Express + MySQL


2)

backend/

├── server.js

├── db.js

├── .env

└── package.json


3)

frontend/

├── src/

│   ├── App.jsx

│   └── main.jsx

├── package.json

└── ...


step1:

   mkdir my-app

   cd my-app

   npm create vite@latest frontend -- --template react

   cd frontend

   npm install

          (exit)

step2:

   mkdir backend

   cd backend

   npm init -y

   npm install express mysql2 cors dotenv

   npm install --save-dev nodemon


Note:

 express — creates the API server

 mysql2 — connects Node.js to MySQL

 cors — allows React to call the backend

 dotenv — keeps database credentials in .env

 nodemon — automatically restarts the server


step3: Create the Express server(Create backend/server.js)

const express = require("express");

const mysql = require("mysql2");

const cors = require("cors");


const app = express();


app.use(cors());

app.use(express.json());


const db = mysql.createConnection({

    host: "localhost",

    user: "root",

    password: "",

    database: "pranav"

});


db.connect((err) => {

    if (err) {

        console.error("MySQL connection failed:", err);

        return;

    }


    console.log("Connected to MySQL");

});


app.post("/users", (req, res) => {

    const { roll, name, city } = req.body;


    const sql = `

        INSERT INTO register (roll, name, city)

        VALUES (?, ?, ?)

    `;


    db.query(sql, [roll, name, city], (err, result) => {

        if (err) {

            console.error(err);


            return res.status(500).json({

                message: "Failed to insert user"

            });

        }


        res.status(201).json({

            message: "User inserted successfully",

            id: result.insertId

        });

    });

});


app.listen(5000, () => {

    console.log("Server running on http://localhost:5000");

});


step4: (Run node server)

       node server.js   (DOS Prompt)

          ----------------Backend code end-------


step5:  Create the React form(frontend/src/App.jsx)


import { useState } from "react";

function App() {

    const [formData, setFormData] = useState({

        roll: "", 

        name: "",

        city: ""

      });


    const handleChange = (e) => {

        setFormData({

            ...formData,

            [e.target.name]: e.target.value

        });

    };


    const handleSubmit = async (e) => {

        e.preventDefault();


        try {

            const response = await fetch("http://localhost:5000/users", {

                method: "POST",

                headers: {

                    "Content-Type": "application/json"

                },

                body: JSON.stringify(formData)

            });


            const data = await response.json();


            if (response.ok) {

                alert("User inserted successfully!");


                setFormData({

        roll: "", 

        name: "",

        city: ""


                });

            } else {

                alert(data.message);

            }

        } catch (error) {

            console.error(error);

            alert("Something went wrong");

        }

    };


    return (

        <div>

            <h1>Register</h1>


            <form onSubmit={handleSubmit}>

                <div>

                    <label>Roll:</label>

                    <input type="text"

                        name="roll"

                        value={formData.roll}

                        onChange={handleChange}

                    />

                </div>


                <br />


                <div>

                    <label>Name:</label>


                    <input

                        type="text"

                        name="name"

                        value={formData.name}

                        onChange={handleChange}

                    />

                </div>


                <br />


                <div>

                    <label>City:</label>


                    <input

                        type="text"

                        name="city"

                        value={formData.city}

                        onChange={handleChange}

                    />

                </div>


                <br />


                <button type="submit">

                   Register

                </button>

            </form>

        </div>

    );

}


export default App;


step6:(Run React) - In the frontend directory

      npm run dev


step7:Open the URL shown by Vite, usually:

      http://localhost:5173


Note:

React Form

    ↓

fetch()

    ↓

POST http://localhost:5000/users

    ↓

Express API

    ↓

MySQL INSERT

    ↓

users table

***************************


No comments:

Post a Comment

ReactJS

ReactJS(React): ------- *ReactJS (React) is a popular JavaScript library for building user interfaces,  *Especially for single-page web appl...