使用React组件编写温度显示器

本文实例为大家分享了React组件编写温度显示器的具体代码,供大家参考,具体内容如下

这是模拟了一下温度显示器的效果,先看效果:

先在页面中引入React等;

import React from "react";
import ReactDOM from "react-dom";
import "./index.css"; // 页面的样式文件

开发过程是这样的:

首先定义一个BoillingVerdict组件,用来显示温度显示器的(样式先不写,在后面一起上代码)(温度显示器上的数字不是温度;),

// 显示温度计算器文字的函数组件(最高300摄氏度)
function BoillingVerdict(props) {
  return (
    <div className="outer">
      <div className="inner" style={{ height: props.height + "%", background: props.bg, }} >
        {props.height}
      </div>
    </div>
  );
}

然后,创建一个名为 Calculator 的组件,用于渲染  '控制温度的输入框' 和 温度显示器组件,

class Calculator extends React.Component {
  // 构造函数,可以用于初始化state
  constructor(props) {
    super(props);
    this.state = {
      temperature: 0, // 温度
      tempHeight: 0, // 温度显示器背景色高度
      bg: "#fff", // 温度显示器颜色
    };
    // 为tempChange方法绑定this,否则该方法中拿不到this
    this.tempChange = this.tempChange.bind(this);
  }
  tempChange(e) { 
   // 判断温度值大小来设置颜色
    var colors =
      Number(e.target.value) > 90 ? "#0F1CED" : Number(e.target.value) > 80 ? "#D5D70B" :
      Number(e.target.value) > 70 ? "#0BD737" : Number(e.target.value) > 60 ? "#0BD7CA" :
      Number(e.target.value) > 50 ? "#ED194B" : Number(e.target.value) > 40 ? "#AE1FD2" :
      Number(e.target.value) > 30 ? "skyblue" : Number(e.target.value) > 20 ? "blue" :
      Number(e.target.value) > 10 ? "orange" : "#671552";
    var height = (Number(e.target.value) / 3).toFixed(2);
    this.setState({
      temperature: e.target.value,
      tempHeight: height,
      bg: colors,
    });
  }
  render() {
    return (
      <fieldset>
        <legend> 温度: </legend>
        <input value={this.state.temperature} onChange={this.tempChange} type="number" > </input>
        <BoillingVerdict height={this.state.tempHeight} bg={this.state.bg}></BoillingVerdict>
      </fieldset>
    );
  }
}

然后渲染:

ReactDOM.render(<Calculator></Calculator>,document.getElementById("root12"));

index.css

.outer{
  width:80px;
  height:300px;
  border:1px solid black;
  border-radius: 20px;
  overflow: hidden;
  background:#fff;
  margin-top:10px;
  position:relative;
  text-align: center;
}
.inner{
  position:absolute;
  bottom:0;height:200px;
  background:#fff;
  width:100%;
  background:blue;
  text-align: center;
  transition: all 1s;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • react实现消息显示器

    本文实例为大家分享了react实现消息显示器的具体代码,供大家参考,具体内容如下 效果 代码实现 完整代码: import React from 'react'; import styles from './styles.less'; import badgeImg from '@/assets/leftmenu/badgeImg.png'; import router from 'umi/router'; import { connect } from 'dva'; import { Popo

  • 使用React组件编写温度显示器

    本文实例为大家分享了React组件编写温度显示器的具体代码,供大家参考,具体内容如下 这是模拟了一下温度显示器的效果,先看效果: 先在页面中引入React等: import React from "react"; import ReactDOM from "react-dom"; import "./index.css"; // 页面的样式文件 开发过程是这样的: 首先定义一个BoillingVerdict组件,用来显示温度显示器的(样式先不写,

  • 编写React组件项目实践分析

    当我刚开始写React的时候,我看过很多写组件的方法.一百篇教程就有一百种写法.虽然React本身已经成熟了,但是如何使用它似乎还没有一个"正确"的方法.所以我(作者)把我们团队这些年来总结的使用React的经验总结在这里.希望这篇文字对你有用,不管你是初学者还是老手. 开始前: 我们使用ES6.ES7语法如果你不是很清楚展示组件和容器组件的区别,建议您从阅读这篇文章开始如果您有任何的建议.疑问都清在评论里留言 基于类的组件 现在开发React组件一般都用的是基于类的组件.下面我们就来

  • 编写简洁React组件的小技巧

    本文源于翻译文章 Simple tips for writing clean React components, 原文作者 Iskander Samatov 在这篇文章中,我们会回顾一些简单的技巧,它们将帮助我们编写更简洁的 React 组件,并且更好地扩展我们的项目. 避免使用扩展操作符传递 props 首先,让我们从一个应该避免的反模式开始.除非有明确的理由这样做,否则应该避免在组件树中使用扩展操作符传递props,比如:{ ...props }. 通过这种方式传递 props 确实可以更快

  • 使用store来优化React组件的方法

    在使用 React 编写组件的时候,我们常常会碰到两个不同的组件之间需要共享状态情况,而通常的做法就是提升状态到父组件.但是这样做会有一个问题,就是尽管只有两个组件需要这个状态,但是因为把状态提到了父组件,那么在状态变化的时候,父组件以及其下面的所有子组件都会重新 render,如果你的父组件比较复杂,包含了其他很多子组件的话,就有可能引起性能问题. Redux 通过把状态放在全局的 store 里,然后组件去订阅各自需要的状态,当状态发生变化的时候,只有那些订阅的状态发生变化的组件才重新 r

  • React组件中的this的具体使用

    React组件的this是什么 通过编写一个简单组件,并渲染出来,分别打印出自定义函数和render中的this: import React from 'react'; const STR = '被调用,this指向:'; class App extends React.Component{ constructor(){ super() } //测试函数 handler() { console.log(`handler ${STR}`,this); } render(){ console.log

  • React 组件转 Vue 组件的命令写法

    基于目前React和Vue比较火,开发react-to-vue工具的目的是为了进一步提高组件的可复用用性,让组件复用不仅仅局限在一个框架里面 简介 对于react-to-vue工具,转化的是基本的react component,而不是全部的react应用.而基本react component的定义更多是基于props和state来渲染的组件,其中也可以包括发请求. 本文先介绍两个框架的组件共性和不兼容的地方,再介绍react-to-vue的使用和原理.在实际业务中,陆金所100多个的react基

  • react组件从搭建脚手架到在npm发布的步骤实现

    最近公司给公司里架设了私有的npm仓库,相应地也需要一个用来发布react组件用的脚手架,在这个过程中又又又又复习了一下webpack,在这里分享下脚手架搭建的过程. 首先,我们预期的脚手架具有如下功能 开发组件时可以实时预览 对组件各种资源进行打包(js/css/图片等) 一键打包发布 1.创建项目 脚手架的名字暂时取react-simple-component-boilerplate. 首先创建一个新目录用于放我们的文件: mkdir react-simple-component-boile

  • 为react组件库添加typescript类型提示的方法

    以我自己的组件react-better-countdown为例, 首先在package.json里面添加types: types/index.d.ts, , 然后文件目录上添加对应文件夹和文件, 最后是index.d.ts文件的编写,具体看代码: import * as React from 'react'; interface CountdownProps { count?: number; dayText?: string | React.ReactElement; hourText?: s

  • 使用hooks写React组件需要注意的5个地方

    Hook是React16.8开始新增的特性.虽然React官方文档已经作出了针对React hooks的相关概念的讲解,但是光看官方文档是很难将hooks使用好的,在编写hooks的过程中很容易跳进陷阱和错误.本文总结了5个不好的地方. 01.不需要render的场景下使用useState 在函数组件中我们可以使用useState来管理状态,这使得对状态的管理变得很简单,但是也容易被滥用,我们通过下面的代码样例看下容易忽略的地方. 不推荐× function ClickButton(props)

  • React中编写CSS实例详解

    目录 正文 内联样式 普通的CSS css modules css in js 样式组件 引入外部变量 默认值 引入全局样式 provider 样式继承 动态添加class 正文 目前,前端最流行的开发方式是组件化,而CSS的设计本身就不是为组件化而生的,所以在目前组件化的框架中都在需要一种合适的CSS解决方案 在组件化开发环境下的CSS,应该满足如下需求: 可以编写局部css: css具备自己的具备作用域,不会随意污染其他组件内的元素 可以编写动态的css: 可以获取当前组件的一些状态,根据状

随机推荐