使用 React 构建 BMI 计算器

WBOY

WBOY

2024-09-04

1258人浏览

转载

使用 react 构建 bmi 计算器

使用 react 构建 bmi 计算器

介绍

体重指数(bmi)是一种广泛使用的指标,用于确定一个人在给定身高下是否拥有健康体重。在本博客中,我们将逐步介绍如何使用 react 创建一个简单但实​​用的 bmi 计算器。这个项目允许用户输入他们的体重和身高来计算他们的bmi,并根据结果提供分类。

项目概况

bmi 计算器是一个使用 react 构建的响应式 web 应用程序。它将用户的体重(以千克为单位)和身高(以厘米为单位)作为输入并计算 bmi。然后,应用程序会显示计算出的 bmi 以及相应的体重分类,例如体重不足、正常体重、超重或肥胖。

特征

  • 用户友好的界面:简单干净的用户界面,易于导航。
  • 实时计算:用户可以通过输入体重和身高立即计算出自己的bmi。
  • 响应式设计:计算器响应灵敏,在不同的屏幕尺寸上运行良好。
  • 体重分类:根据计算出的bmi,告知用户自己的体重状况。

使用的技术

  • react: 用于构建用户界面的核心库。
  • javascript: 用于处理 bmi 计算的逻辑。
  • css 设置应用程序样式并确保响应式设计。

项目结构

以下是该项目结构的简要概述:

src/
│
├── assets/
│   └── images/
│       └── bmi logo.png
├── components/
│   └── bmicalculator.jsx
├── app.jsx
├── app.css
└── index.css

代码说明

1.bmi计算器组件

该组件是应用程序的核心。它处理用户输入、执行 bmi 计算并显示结果。

import { usestate } from "react";
import logoimg from "../assets/images/bmi logo.png";

const bmicalculator = () => {
  const [weight, setweight] = usestate("");
  const [height, setheight] = usestate("");
  const [bmi, setbmi] = usestate("");
  const [result, setresult] = usestate("");

  function calculatebmi(weight, height) {
    const heightm = height / 100;
    const bmiresult = weight / (heightm * heightm);
    setbmi(bmiresult.tofixed(2)); // round to 2 decimal places
    if (bmiresult  {
    if (weight && height) {
      calculatebmi(weight, height);
    }
  };

  return (
    <div classname="bmi-container">
      <div classname="logo">
        @@##@@
      </div>
      <div classname="input-box">
        <div classname="weight-input">
          <h4>weight (kg)</h4>
          <input type="number" value="{weight}" onchange="{(e)"> setweight(e.target.value)}
          />
        </div>
        <div classname="height-input">
          <h4>height (cm)</h4>
          <input type="number" value="{height}" onchange="{(e)"> setheight(e.target.value)}
          />
        </div>
      </div>
      <button onclick="{handlecalculatebmi}" classname="btn">
        <h2>calculate bmi</h2>
      </button>
      <div classname="output-box">
        <p>your bmi : <b>{bmi}</b></p>
        <p>result : <b>{result}</b></p>
      </div>
    </div>
  );
};

export default bmicalculator;

2. 应用程序组件

app 组件作为主容器,包装 bmicalculator 组件并添加页眉和页脚。

使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件

如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Andr​​oid友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Andr​​oid应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更

下载
import bmicalculator from "./components/bmicalculator";
import "./app.css";

const app = () => {
  return (
    <div classname="app">
      <div classname="header">
        <h1>bmi calculator</h1>
      </div>
      <bmicalculator></bmicalculator><div classname="footer">
        <p>made with ❤️ by abhishek gurjar</p>
      </div>
    </div>
  );
};

export default app;

3. 设置应用程序样式 (app.css)

css 确保应用程序具有视觉吸引力和响应能力。

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: sans-serif;
  background-color: #008f7d;
  color: white;
}

.app {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  margin-top: 30px;
}

.header {
  text-align: center;
  font-size: 18px;
}

.bmi-container {
  margin: 40px;
  width: 500px;
  height: 430px;
  background-color: white;
  color: black;
  border-radius: 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}

.logo img {
  width: 50px;
  height: 50px;
  margin: 15px;
}

.input-box {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.input-box h4 {
  color: gray;
}

.weight-input,
.height-input {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
}

.weight-input input,
.height-input input {
  height: 27px;
  width: 180px;
  font-weight: 400;
  font-size: 14px;
  border-radius: 7px;
}

.btn {
  margin: 15px;
  width: 65%;
  height: 10%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #087fff;
  color: white;
  border: 0.5px solid black;
  border-radius: 7px;
}

.btn:hover {
  background-color: #2570c1;
}

.output-box {
  margin-top: 20px;
  width: 65%;
  height: 15%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  background-color: #e2e2e2;
  color: black;
  border-radius: 7px;
  border: 1px solid black;
}

.output-box p {
  margin-left: 20px;
  line-height: 0;
}

.footer {
  text-align: center;
  font-size: 14px;
}

安装与使用

要在本地计算机上运行 bmi 计算器,请按照以下步骤操作:

  1. 克隆存储库:
   git clone https://github.com/abhishekgurjar-in/bmi-calculator-react.git
  1. 安装依赖项: 导航到项目目录并运行:
   npm install
  1. 启动应用程序: 通过运行以下命令启动应用程序:
   npm start

应用程序应在默认 web 浏览器中打开,地址为 http://localhost:3000。

现场演示

在此处查看 bmi 计算器的现场演示。

结论

在这个项目中,我们使用 react 构建了一个简单而有效的 bmi 计算器。该项目演示了如何使用 react 状态管理、条件渲染和基本样式来创建用户友好的界面。无论您是刚刚开始使用 react 还是想练习自己的技能,这个项目都是获得实践经验的好方法。

制作人员

  • 标志:本项目使用的bmi标志来自unsplash。
  • 灵感:该项目的灵感来自于在线提供的各种 bmi 计算器。

作者

abhishek gurjar 是一位充满热情的 web 开发人员,专注于构建直观且响应灵敏的 web 应用程序。跟随他的旅程并在 github 上探索更多项目。

bmi logo

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

css git

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2026.01.21

7598

27

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

2026.04.02

454

19

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.09

1651

4

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

2023.11.14

629

3

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2024.03.12

5112

8

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

4621

6

Go 语言 HTTP 编程与中间件开发教程合集
Go 语言 HTTP 编程与中间件开发教程合集

全面讲解 Go 语言 HTTP 编程的核心知识,涵盖 net/http 标准库的 Server/Handler/HandlerFunc 体系、DefaultServeMux 路由注册与自定义路由器、Request / ResponseWriter 请求响应处理、中间件(Middleware)链式设计模式与常见中间件(日志/CORS/认证/限流)开发、http.Client 的超时配置与连接池管理、Cookie / Session 处理、

2026.05.08

174

31

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

2

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

1

18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.3万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5万人学习

CSS教程
CSS教程

共754课时 | 84.4万人学习