Thursday, October 9, 2025
HomeLanguagesHow to Create a Simple Counter App using Next.js ?

How to Create a Simple Counter App using Next.js ?

This article explains the process of creating a simple counter application using Next.js. We will see how to build a functional counter with increment and decre­ment buttons. In a typical scenario, imagine the need to create a user-friendly counte­r application. The application would require buttons for increasing and de­creasing a numeric value.

Prerequisite:

Steps to create the NextJS Application

Step 1: Create a Next.js project using the following command:

npx create-next-app simple-counter 

A convenient NPM package runner is provided by the term NPX, which stands for Node Package eXe­cute. Developers may easily launch any Javascript Package from the NPM registry without the need for installation thanks to this feature. With NPM versions 5.2.0 and above, NPX is automatically installed.

Step 2: Change to the directory:

cd simple-counter 

Project Structure:

Next-js-Project-Structure

Approach:

  • The App compone­nt utilizes the useState­ hook to effectively manage­ two state variables: counter and initialCount. Both of the­se variables are initially se­t to 0.
  • To modify the counte­r value, users can utilize two buttons labe­led “Increment” and “De­crement.” In addition to the counter functionality, this application introduces a dynamic feature.
  • It includes an input field to set the initialCount value. When the user enters a number into the input field and clicks the “Set Initial Count” button, the handleInitialCountChange function updates the initialCount state accordingly.
  • When the “Reset” button is clicked, the handleReset function resets the counter value to the initialCount value.

Example:

  • App.js file

Javascript




import React, { useState } from "react";
  
const App = () => {
    const [counter, setCounter] = useState(0);
    const [initialCount, setInitialCount] = useState(0);
  
    const handleInitialCountChange = (event) => {
        setInitialCount(Number(event.target.value));
    };
  
    const handleReset = () => {
        setCounter(initialCount);
    };
  
    const handleClick1 = () => {
        setCounter(counter + 1);
    };
  
    const handleClick2 = () => {
        setCounter(counter - 1);
    };
  
    return (
        <div style={styles.container}>
            <h1 style={styles.heading}>
                Geeksforneveropen
            </h1>
            <h2 style={styles.header}>
                Counter App
            </h2>
            <div style={styles.counterValue}>
                {counter}
            </div>
            <div style={styles.buttons}>
                <button style={styles.button} 
                        onClick={handleClick1}>
                    Increment
                </button>
                <button style={styles.button} 
                        onClick={handleClick2}>
                    Decrement
                </button>
            </div>
            <div style={{ margin: "1.5rem" }}>
                <input
                    type="number"
                    value={initialCount}
                    onChange={handleInitialCountChange}
                    style={{ padding: "1rem"
                             fontSize: "1rem"
                             borderRadius: "8px" }}
                />
                <button
                    onClick={handleReset}
                    style={{
                        padding: "1rem",
                        fontSize: "1rem",
                        marginLeft: "1rem",
                        borderRadius: "5px",
                        cursor: "pointer",
                        color: "#fff",
                        background: "blue",
                        border: "none",
                        outline: "none",
                        boxShadow: "0px 0px 20px 0px grey",
                    }}
                >
                    Set Initial Count
                </button>
            </div>
        </div>
    );
};
  
const styles = {
    container: {
        display: "flex",
        flexDirection: "column",
        alignItems: "center",
        justifyContent: "center",
        height: "100vh",
        background: "#f8f8f8",
    },
    header: {
        fontSize: "1.4rem",
        margin: "1rem 0",
        color: "#333",
        textTransform: "uppercase",
    },
    heading: {
        color: "green",
        fontSize: "2rem",
    },
    counterValue: {
        fontSize: "3rem",
        fontWeight: "bold",
        margin: "1rem 0",
        color: "#007bff",
    },
    buttons: {
        display: "flex",
        justifyContent: "center",
    },
    button: {
        fontSize: "1rem",
        padding: "1rem",
        margin: "0.5rem",
        borderRadius: "5px",
        cursor: "pointer",
        color: "#fff",
        background: "green",
        border: "none",
        outline: "none",
        transition: "background 0.3s",
        boxShadow: "0px 0px 20px 0px grey",
    },
};
  
export default App;


Step 4: To run the next.js application, execute the following command and then navigate to http://localhost:3000.

npm run dev

Output:

How-To-Create-A-Simple-Counter-Using-In-Nextjs

Create A Simple Counter Using In NextJS

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!
Previous article
Next article
RELATED ARTICLES

Most Popular

Dominic
32346 POSTS0 COMMENTS
Milvus
87 POSTS0 COMMENTS
Nango Kala
6715 POSTS0 COMMENTS
Nicole Veronica
11878 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11940 POSTS0 COMMENTS
Shaida Kate Naidoo
6835 POSTS0 COMMENTS
Ted Musemwa
7095 POSTS0 COMMENTS
Thapelo Manthata
6790 POSTS0 COMMENTS
Umr Jansen
6791 POSTS0 COMMENTS