Skip to main content

Let's Build a Simple Form

Imagine a form where someone can enter their email address. In React, we use a function called useState to keep track of what the user types.

// Imagine this is a file named SimpleForm.js
import React, { useState } from 'react';

function SimpleForm() {
  // This line sets up a piece of memory to remember the email address
  const [email, setEmail] = useState('');

  // This function is called whenever someone types something in
  const handleChange = (event) => {
    // This line updates the memory with what the person typed
    setEmail(event.target.value);
  };

  // This function is called when the form is submitted
  const handleSubmit = (event) => {
    // This line prevents the form from doing its usual browser stuff
    event.preventDefault();
    // Now you can do something with the email, like showing it on the screen
    console.log('Email submitted:', email);
  };

  // This is what the form looks like
  return (
    <form onSubmit={handleSubmit}>
      <label>
        Email:
        {/* This input field gets its value from the memory */}
        <input type="text" value={email} onChange={handleChange} />
      </label>
      {/* This button triggers the form submission */}
      <button type="submit">Submit</button>
    </form>
  );
}

export default SimpleForm;

**** not use this anymore ****1. Build a simple React form with multiple input fields.

First we need to create our project first.

npm create vite@latest

You can use any project name as you want.

For framework, we will use React + Typescript

After finishing set up, go to your project directory by this command

cd projectname
npm i

Then we will install Material UI to styling our application like last week

npm install @mui/material @emotion/react @emotion/styled

And start your project with 

npm run dev

References:

https://agirlcodes.medium.com/the-complete-guide-to-building-react-forms-with-usestate-hook-e3d282ff0025