Categories
React Projects

Create a Grocery List App with React and JavaScript

Spread the love

React is an easy to use JavaScript framework that lets us create front end apps.

In this article, we’ll look at how to create a grocery list app with React and JavaScript.

Create the Project

We can create the React project with Create React App.

To install it, we run:

npx create-react-app grocery-list

with NPM to create our React project.

We need the uuid to let us create unique IDs for our to-do items easily.

To add it, we run:

npm i uuidv4

Create the Grocery List App

To create the grocery list app, we write:

import { useState } from "react";
import { v4 as uuidv4 } from "uuid";

export default function App() {
  const [item, setItem] = useState("");
  const [items, setItems] = useState([]);
  const add = (e) => {
    e.preventDefault();
    if (!item) {
      return;
    }
    setItems((items) => [
      ...items,
      {
        id: uuidv4(),
        item
      }
    ]);
  };

  const remove = (index) => {
    setItems((items) => items.filter((_, i) => i !== index));
  };

  return (
    <div className="App">
      <form onSubmit={add}>
        <fieldset>
          <label>item</label>
          <input value={item} onChange={(e) => setItem(e.target.value)} />
        </fieldset>
        <button type="submit">add item</button>
      </form>
      {items.map((item, index) => {
        return (
          <div key={item.id}>
            <p>{item.item}</p>
            <button onClick={() => remove(index)}>remove</button>
          </div>
        );
      })}
    </div>
  );
}

We have the item and items state created with the useState hook.

item has the item text.

items has the items array.

Then we add the add method which lets us add an item to the items array.

Inside it, we call e.preventDefault() to do client-side submission.

Then we check if item is set.

If it is, then we call setItems with a callback to return the items array with the new item added to the end.

The remove method calls setItems with a callback to return a items array without the item with the given index .

Then in the return statement, we have a form with the onSubmit prop that calls add .

An input element has the vbalue and onChange props to make it a controlled input.

We set the item value to e.target.value .

Then we render the items array into divs with the item.item text inside.

The button calls remove when we click it.

Conclusion

We can create a grocery list app easily with React and JavaScript.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *