ReactJS |Kalkulator Reaksi Mudah

WBOY
Lepaskan: 2024-08-22 22:42:32
asal
341 orang telah melayarinya

ReactJS |Simple React Calculator

Artikel ini akan membimbing anda melalui proses mencipta kalkulator yang berfungsi dan mesra pengguna menggunakan ReactJS. Kami akan merangkumi konsep penting seperti pengurusan negeri, pengendalian acara dan struktur komponen untuk menjadikan projek ini boleh diakses oleh pemula dan pengalaman pembelajaran yang hebat untuk mereka yang biasa dengan React.

Persediaan Projek

Buat Apl React Baharu:
Mulakan dengan menyediakan projek React baharu menggunakan Apl Buat React:

npx create-react-app react-calculator
cd react-calculator
kandungan_salinan
Gunakan kod dengan berhati-hati.
Bash

Mulakan Pelayan Pembangunan:
Jalankan arahan berikut untuk melancarkan pelayan pembangunan anda:

npm mula
kandungan_salinan
Gunakan kod dengan berhati-hati.
Bash

Apl React anda boleh diakses di http://localhost:3000/.

Struktur Komponen

Kami akan menstrukturkan kalkulator kami menggunakan satu komponen: App.js. Komponen ini akan mengendalikan keseluruhan logik dan pemaparan kalkulator.

App.js (Komponen Utama)

import React, { useState } daripada "react";
import "./App.css";

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

// Fungsi untuk mengendalikan klik butang nombor
const handleNumberClick = (nombor) => {
if (displayValue === "0") {
setDisplayValue(number.toString());
} lain {
setDisplayValue(displayValue + number.toString());
}
};

// Fungsi untuk mengendalikan klik butang operator
const handleOperatorClick = (op) => {
setOperator(op);
setFirstOperand(parseFloat(displayValue));
setDisplayValue("0");
};

// Fungsi untuk mengendalikan sama dengan klik butang
const handleEqualsClick = () => {
const secondOperand = parseFloat(displayValue);
biar terhasil;

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);
Salin selepas log masuk

};

// Fungsi untuk mengendalikan klik butang jelas
const handleClearClick = () => {
setDisplayValue("0");
setOperator(null);
setFirstOperand(null);
};

kembali (


{/* Paparkan nilai semasa */}
{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>
Salin selepas log masuk

);
}

eksport Apl lalai;
kandungan_salinan
Gunakan kod dengan berhati-hati.
JavaScript

Penjelasan

Pengurusan Negeri:
Kami menggunakan cangkuk useState untuk mengurus keadaan kalkulator. displayValue memegang nilai semasa yang dipaparkan, operator menyimpan operasi yang dipilih dan firstOperand menyimpan nombor pertama yang dimasukkan.

Pengendalian Acara:
Fungsi seperti handleNumberClick, handleOperatorClick, handleEqualsClick dan handleClearClick mengendalikan interaksi pengguna dengan butang.

Komposisi Komponen:
Komponen Apl bertanggungjawab untuk kedua-dua logik dan pemaparan kalkulator, menunjukkan cara komponen boleh menggabungkan fungsi dan persembahan.

Menambah Penggayaan (App.css)

.kalkulator {
paparan: flex;
arah lentur: lajur;
lebar: 300px;
sempadan: 1px pepejal #ccc;
pelapik: 20px;
jejari sempadan: 5px;
}

.paparan {
ketinggian: 50px;
warna latar belakang: #eee;
saiz fon: 24px;
penjajaran teks: kanan;
pelapik: 10px;
jejari sempadan: 5px;
jidar bawah: 10px;
}

.butang {
paparan: grid;
grid-template-columns: repeat(4, 1fr);
jurang grid: 10px;
}

butang {
pelapik: 10px;
sempadan: tiada;
jejari sempadan: 5px;
warna latar belakang: #f0f0f0;
saiz fon: 18px;
kursor: penunjuk;
}

butang: tuding {
warna latar belakang: #ddd;
}
kandungan_salinan
Gunakan kod dengan berhati-hati.
Css

Kesimpulan

Dengan mengikuti langkah ini, anda telah mencipta kalkulator berfungsi sepenuhnya menggunakan React! Projek ini berfungsi sebagai asas yang hebat untuk penerokaan lanjut keupayaan React. Anda kini boleh menambah ciri seperti operasi lanjutan, fungsi memori, atau malah tema visual. Eksperimen dan berseronok!

Atas ialah kandungan terperinci ReactJS |Kalkulator Reaksi Mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!