当前位置:首页 > React

react实现计算器

2026-01-27 14:24:35React

React 实现计算器的步骤

创建 React 项目
使用 create-react-appVite 初始化项目:

npx create-react-app calculator
# 或
npm create vite@latest calculator --template react

设计组件结构
计算器通常包含以下部分:

  • 显示区域(Display)
  • 按钮区域(ButtonPad)
  • 逻辑处理(Calculator)

实现显示组件
创建一个显示当前输入和结果的组件:

function Display({ value }) {
  return <div className="display">{value || "0"}</div>;
}

实现按钮组件
创建可复用的按钮组件:

function Button({ onClick, label }) {
  return (
    <button onClick={onClick} className="button">
      {label}
    </button>
  );
}

核心逻辑实现
Calculator 组件中处理计算逻辑:

function Calculator() {
  const [display, setDisplay] = useState("0");
  const [storedValue, setStoredValue] = useState(null);
  const [operation, setOperation] = useState(null);

  const handleNumberInput = (num) => {
    setDisplay(display === "0" ? num : display + num);
  };

  const handleOperation = (op) => {
    setStoredValue(parseFloat(display));
    setOperation(op);
    setDisplay("0");
  };

  const calculateResult = () => {
    const currentValue = parseFloat(display);
    let result;
    switch (operation) {
      case "+":
        result = storedValue + currentValue;
        break;
      case "-":
        result = storedValue - currentValue;
        break;
      case "*":
        result = storedValue * currentValue;
        break;
      case "/":
        result = storedValue / currentValue;
        break;
      default:
        return;
    }
    setDisplay(result.toString());
    setStoredValue(null);
    setOperation(null);
  };

  const clearAll = () => {
    setDisplay("0");
    setStoredValue(null);
    setOperation(null);
  };
}

完整组件渲染
将各个部分组合起来:

return (
  <div className="calculator">
    <Display value={display} />
    <div className="button-pad">
      <Button onClick={() => handleNumberInput("7")} label="7" />
      <Button onClick={() => handleNumberInput("8")} label="8" />
      <Button onClick={() => handleNumberInput("9")} label="9" />
      <Button onClick={() => handleOperation("/")} label="/" />

      <Button onClick={() => handleNumberInput("4")} label="4" />
      <Button onClick={() => handleNumberInput("5")} label="5" />
      <Button onClick={() => handleNumberInput("6")} label="6" />
      <Button onClick={() => handleOperation("*")} label="*" />

      <Button onClick={() => handleNumberInput("1")} label="1" />
      <Button onClick={() => handleNumberInput("2")} label="2" />
      <Button onClick={() => handleNumberInput("3")} label="3" />
      <Button onClick={() => handleOperation("-")} label="-" />

      <Button onClick={() => handleNumberInput("0")} label="0" />
      <Button onClick={() => setDisplay(display + ".")} label="." />
      <Button onClick={calculateResult} label="=" />
      <Button onClick={() => handleOperation("+")} label="+" />

      <Button onClick={clearAll} label="C" />
    </div>
  </div>
);

添加样式
创建 CSS 文件增强视觉效果:

.calculator {
  width: 240px;
  margin: 0 auto;
  border: 1px solid #ccc;
  border-radius: 5px;
  padding: 10px;
}

.display {
  background: #f8f8f8;
  padding: 10px;
  margin-bottom: 10px;
  text-align: right;
  font-size: 20px;
}

.button-pad {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 5px;
}

.button {
  padding: 10px;
  font-size: 18px;
  border: none;
  background: #eee;
  cursor: pointer;
}

.button:hover {
  background: #ddd;
}

功能扩展建议

  1. 添加键盘支持
  2. 实现连续运算功能
  3. 添加历史记录功能
  4. 支持科学计算功能
  5. 实现主题切换功能

这个实现提供了基本计算器功能,包括加减乘除和清零操作。可以根据需求进一步扩展功能和完善用户体验。

react实现计算器

标签: 计算器react
分享给朋友:

相关文章

react native 如何

react native 如何

安装 React Native 开发环境 确保系统已安装 Node.js(建议版本 16 或更高)。通过以下命令安装 React Native CLI 工具: npm install -g rea…

css制作计算器界面

css制作计算器界面

使用CSS制作计算器界面 制作计算器界面需要结合HTML结构、CSS样式以及可能的JavaScript交互功能。以下是纯CSS部分的实现方法,创建一个基础计算器界面。 HTML结构 先构建一个简单的…

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…