Heim > Web-Frontend > js-Tutorial > Hauptteil

ReactJS |Einfacher Reaktionsrechner

WBOY
Freigeben: 2024-08-22 22:42:32
Original
341 Leute haben es durchsucht

ReactJS |Simple React Calculator

Dieser Artikel führt Sie durch den Prozess der Erstellung eines funktionalen, benutzerfreundlichen Rechners mit ReactJS. Wir werden die wesentlichen Konzepte wie Zustandsverwaltung, Ereignisbehandlung und Komponentenstruktur behandeln, um dieses Projekt für Anfänger zugänglich zu machen und eine großartige Lernerfahrung für diejenigen zu bieten, die mit React vertraut sind.

Projekt-Setup

Erstellen Sie eine neue React-App:
Beginnen Sie mit der Einrichtung eines neuen React-Projekts mit Create React App:

npx create-react-app-Reaktionsrechner
CD-Reaktionsrechner
content_copy
Verwenden Sie Code mit Vorsicht.
Bash

Starten Sie den Entwicklungsserver:
Führen Sie den folgenden Befehl aus, um Ihren Entwicklungsserver zu starten:

npm start
content_copy
Verwenden Sie Code mit Vorsicht.
Bash

Ihre React-App ist unter http://localhost:3000/ zugänglich.

Komponentenstruktur

Wir strukturieren unseren Rechner mit einer einzigen Komponente: App.js. Diese Komponente übernimmt die Logik und das Rendering des gesamten Rechners.

App.js (Hauptkomponente)

import React, { useState } from „react“;
import "./App.css";

Funktion App() {
const [displayValue, setDisplayValue] = useState("0");
const [operator, setOperator] = useState(null);
const [firstOperand, setFirstOperand] = useState(null);

// Funktion zur Verarbeitung von Nummerntastenklicks
const handleNumberClick = (Zahl) => {
if (displayValue === "0") {
setDisplayValue(number.toString());
} sonst {
setDisplayValue(displayValue + number.toString());
}
};

// Funktion zur Verarbeitung von Bediener-Schaltflächenklicks
const handleOperatorClick = (op) => {
setOperator(op);
setFirstOperand(parseFloat(displayValue));
setDisplayValue("0");
};

// Funktion zur Handhabung des Gleichheits-Schaltflächenklicks
const handleEqualsClick = () => {
const secondOperand = parseFloat(displayValue);
Ergebnis lassen;

switch (operator) {
  case "+":
    result = firstOperand + secondOperand;
    break;
  case "-":
    result = firstOperand - secondOperand;
    break;
  case "*":
    result = firstOperand * secondOperand;
    break;
  case "/":
    if (secondOperand === 0) {
      result = "Error";
    } else {
      result = firstOperand / secondOperand;
    }
    break;
  default:
    result = "Invalid Operation";
}

setDisplayValue(result.toString());
setOperator(null);
setFirstOperand(null);
Nach dem Login kopieren

};

// Funktion zur Handhabung des Klicks auf eine klare Schaltfläche
const handleClearClick = () => {
setDisplayValue("0");
setOperator(null);
setFirstOperand(null);
};

zurück (


{/* Aktuellen Wert anzeigen */}
{displayValue}
  {/* Button grid for calculator functions */}
  <div className="buttons">
    <button onClick={() => handleNumberClick("7")}>7</button>
    <button onClick={() => handleNumberClick("8")}>8</button>
    <button onClick={() => handleNumberClick("9")}>9</button>
    <button onClick={() => handleOperatorClick("/")}>/</button>
    <button onClick={() => handleNumberClick("4")}>4</button>
    <button onClick={() => handleNumberClick("5")}>5</button>
    <button onClick={() => handleNumberClick("6")}>6</button>
    <button onClick={() => handleOperatorClick("*")}>*</button>
    <button onClick={() => handleNumberClick("1")}>1</button>
    <button onClick={() => handleNumberClick("2")}>2</button>
    <button onClick={() => handleNumberClick("3")}>3</button>
    <button onClick={() => handleOperatorClick("-")}>-</button>
    <button onClick={() => handleNumberClick("0")}>0</button>
    <button onClick={() => handleNumberClick(".")}>.</button>
    <button onClick={() => handleEqualsClick()}>=</button>
    <button onClick={() => handleOperatorClick("+")}>+</button>
    <button onClick={() => handleClearClick()}>C</button>
  </div>
</div>
Nach dem Login kopieren

);
}

Standard-App exportieren;
content_copy
Verwenden Sie Code mit Vorsicht.
JavaScript

Erklärung

Staatsverwaltung:
Wir verwenden useState-Hooks, um den Status des Rechners zu verwalten. displayValue enthält den aktuell angezeigten Wert, der Operator speichert die ausgewählte Operation und firstOperand speichert die erste eingegebene Zahl.

Ereignisbehandlung:
Funktionen wie handleNumberClick, handleOperatorClick, handleEqualsClick und handleClearClick verarbeiten Benutzerinteraktionen mit den Schaltflächen.

Komponentenzusammensetzung:
Die App-Komponente ist sowohl für die Logik als auch für das Rendering des Rechners verantwortlich und demonstriert, wie Komponenten Funktionalität und Präsentation kombinieren können.

Styling hinzufügen (App.css)

.Rechner {
Anzeige: Flex;
Flexrichtung: Spalte;
Breite: 300px;
Rand: 1px fest #ccc;
Polsterung: 20px;
Randradius: 5px;
}

.display {
Höhe: 50px;
Hintergrundfarbe: #eee;
Schriftgröße: 24px;
Textausrichtung: rechts;
Polsterung: 10px;
Randradius: 5px;
Rand unten: 10px;
}

.buttons {
Anzeige: Raster;
Rastervorlagenspalten: wiederholen(4, 1fr);
Gitterlücke: 10px;
}

Schaltfläche {
Polsterung: 10px;
Grenze: keine;
Randradius: 5px;
Hintergrundfarbe: #f0f0f0;
Schriftgröße: 18px;
Cursor: Zeiger;
}

Button:hover {
Hintergrundfarbe: #ddd;
}
content_copy
Verwenden Sie Code mit Vorsicht.
CSS

Fazit

Indem Sie diese Schritte befolgen, haben Sie mit React einen voll funktionsfähigen Rechner erstellt! Dieses Projekt dient als hervorragende Grundlage für die weitere Erforschung der Fähigkeiten von React. Sie können jetzt Funktionen wie erweiterte Vorgänge, Speicherfunktionen oder sogar ein visuelles Thema hinzufügen. Experimentieren Sie und haben Sie Spaß!

Das obige ist der detaillierte Inhalt vonReactJS |Einfacher Reaktionsrechner. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!