React Hook入门小案例 在函数式组件中使用state响应式数据

news/2024/10/23 7:36:05/

Hook是react 16.8 新增的特性
是希望在不编写 class的情况下 去操作state和其他react特性
Hook的话 就不建议大家使用class的形式了 当然也可以用 这个他只是不推荐

我们还是先创建一个普通的react项目

我们之前写一个react组件可以这样写

import React from "react";
export default class AppRouter extends React.Component{render(){return (<div>Hello World</div>)}
}

简单说 就是声明一个类对象 然后在里面 写组件的基本内容

然后 就还有一种函数式的写法

import React from "react";
function dom1(){return (<div>Hello World</div>)
}export default dom1

这两种写法界面效果没有什么不同
在这里插入图片描述
甚至我们直接这样写

import React from "react";
export default () => {return (<div>Hello World</div>)
}

也是可以出界面的
在这里插入图片描述
但是 这样问题就来了 我们在这里面是没办法 创建 state和生命周期的

在中我们可以这样写

import React from "react";
import axios from "axios";export default class AppRouter extends React.Component{state = {name: "小猫猫"}render(){return (<div>{ this.state.name }</div>)}
}

这样 就可以创建state
但函数这样去声明显然是没用的

那么 我们皆可以这样写

import React, { useState } from "react";const MyComponent = () => {const [name] = useState("小猫猫");return (<div>{name}</div>);
};export default MyComponent;

运行结果如下
在这里插入图片描述
这样 我们这种函数式就能用State数据了
然后 我们修改他也可以

import React, { useState } from "react";const MyComponent = () => {const [name,setName] = useState("小猫猫");return (<div>{name}<button onClick={ ()=> { setName("大猫猫")} }>更改</button></div>);
};export default MyComponent;

注意 他这里修改数据的方法是你在声明变量时一起声明的 你要它叫什么 他就叫什么

例如 我这里 声明name变量 然后修改的值的函数 我声明叫 setName 你也可以写其他名字
然后我们点击按钮调用setName 参数就是要更改后的新值

我们运行代码
在这里插入图片描述
然后点击更改按钮
在这里插入图片描述
我们的变量就改变了

然后 我们来写两个值

import React, { useState } from "react";const MyComponent = () => {const [name,setName] = useState("小猫猫");const [age,setAge] = useState(2);return (<div>{name}{age}<button onClick={ ()=> { setName("大猫猫")} }>更改</button><button onClick={ ()=> { setAge(age+1)} }>又一年</button></div>);
};export default MyComponent;

运行项目
在这里插入图片描述
我们更改和又一年都点一下
在这里插入图片描述
也是没有任何问题


http://www.ppmy.cn/news/328313.html

相关文章

[ICNN 1993] Optimal brain surgeon and general network pruning

Contents IntroductionMethodOptimal brain surgeon (OBS)Computing the inverse HessianThe ( t − o ) → 0 (\mathbf t-\mathbf o)\rightarrow 0 (t−o)→0 Approximation References Introduction 作者提出 Optimal brain damage (OBD) 的改进 Optimal brain surgeon (OB…

中控考勤机忘记密码处理

1、要进入考勤机&#xff0c;首先要知道考勤机的超级管理号码。考勤机的超级号码是8888.可以直接在考勤机屏幕上按出这几个数字。 2、其次是计算考勤机的密码。计算考勤机密码需要工具&#xff0c;也就是计算器&#xff0c;打开手机上的计算器。 3、有了计算器&#xff0c;还需…

连接中控指纹考勤机 zkemkeeper zksoftware ZKTeco

使用vb.net连接中控指纹考勤机需要的软件:1.开发包工具: http://www.zksky.com/Products/Download/Downloadseven/ &#xff08;我使 用的就是开发包下Demo文件&#xff0c;里面有3个文件夹对应不用的考勤机类型&#xff0c;注意是类型不是型号&#xff0c;不清楚就问考勤机公司…

Java spring boot 开发中控Live10R指纹采集器linux(指纹登录系统)

1.需求 需要做一个指纹登录系统&#xff0c;录入指纹&#xff0c;修改指纹等&#xff0c;指纹比对等。 2.开发 开启指纹采集器&#xff0c;指纹采集器base64数据录入到数据库以及指纹登录登出 package com.iot.modules.biz.fp;import com.iot.common.util.CommonUtil; import…

中控消费机一直显示连接服务器,中控消费机培训及常见问题的解决办法-1.ppt

《人教版历史第14课灿烂的宋元文化二 培训主题 消费机功能基本操作介绍 CM20集消费机&#xff0c;出纳机&#xff0c;补贴机功能于一体。机器的操作&#xff0c;分为机器操作和软件操作两大块。其中可以通过机器操作来实现消费机/出纳机/补贴机之间的切换。软件界面简洁清晰、操…

中控消费机一直显示连接服务器,中控消费机培训及常见问题的解决办法课件.ppt...

培训主题 消费系统培训 消费机功能基本操作介绍 CM20集消费机 出纳机 补贴机功能于一体 机器的操作 分为机器操作和软件操作两大块 其中可以通过机器操作来实现消费机 出纳机 补贴机之间的切换 软件界面简洁清晰 操作方便 功能齐全 系统稳定可靠 大大提升了管理效率 机器硬件核…

中控人脸指纹考勤机怎么如何偷偷修改数据记录

中控人脸指纹考勤机怎么如何偷偷修改数据记录在日常工作中&#xff0c;由于公司、单位、企业安装使用了人脸考勤机或指纹打卡机&#xff0c;进行员工考勤签到打卡管理&#xff0c;所以&#xff0c;很多员工或职员&#xff0c;都会按时上下班&#xff0c;自觉签到签退。可以说人…

中控H10考勤机管理员密码破解

中控H10考勤机管理员密码破解 标签&#xff1a;考勤机 管理员 密码破解 1. 管理员破解方式 首先看考勤机上的时间&#xff0c;比如显示为20:24&#xff0c;去掉冒号为2024管理员密码为&#xff1a; (9999−2024)263600625 长按M/OK键&#xff0c;进入管理员界面&#xff0c;输…