位置: IT常识 - 正文

React Hook - useState函数的详细解析

编辑:rootadmin
React Hook - useState函数的详细解析 useState的详细解析

推荐整理分享React Hook - useState函数的详细解析,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在上一篇文章中, 我用到useState来让大家体验一下hooks函数

import { memo, useState } from "react"const Counter2 = memo(() => { const [counter, setCounter] = useState(100) return ( <div> <h2>当前计数: {counter}</h2> <button onClick={() => setCounter(counter - 1)}>-1</button> <button onClick={() => setCounter(counter + 1)}>+1</button> </div> )})export default Counter2

那么接下来我们来先研究一下上面核心的一段代码代表什么意思

useState来自react,需要从react中导入,是一个hook函数, 官方中也将它成为State Hook, 它与class组件里面的 this.state 提供的功能完全相同;

一般来说,在函数退出后变量就会”消失”,而 state 中的变量会被 React 保留。

useState只有一个参数: 接收一个初始化状态的值(设置初始值),在第一次组件被调用时使用来作为初始化值(如果不设置则默认为undefined);

useState的返回值: 返回一个数组,数组包含两个元素;

元素一: 当前状态的值(第一次调用为初始化值);元素二: 是一个设置状态值变化的函数;不过我们如果总是使用索引来获取这两个元素总是不方便的, 因此在开发中我们通常是会对数组进行解构(当然要取什么名字是自定义的)例如上面代码: const [counter, setCounter] = useState(100)

上面代码中, 点击button按钮后,会完成两件事情:

调用元素二: setCounter,设置一个新的值;

组件重新渲染,并且根据新的值返回DOM结构;

React Hook - useState函数的详细解析

相信通过上面的一个简单案例,你已经会喜欢上Hook的使用了。

Hook 就是 JavaScript 函数,这个函数可以帮助你钩入(hook into) React State以及生命周期等特性;

但是使用它们会有两个额外的规则:

只能在函数组件的顶层调用 Hook。不能在循环语句、条件判断语句或者子函数中调用。

只能在 React 的函数组件和自定义hook中调用 Hook。不能在其他 JavaScript 函数中调用。

Tip

Hook 指的类似于useState、这样的某一个函数

Hooks 是对这一类函数的统称

大家可能有疑惑: 为什么叫 useState 而不叫 createState?

“create” 可能不是很准确,因为 state 只在组件首次渲染 的时候才会被创建。

在下一次重新渲染时,就已经不是创建了, useState 会返回给我们当前所保存的state(如果每次都创建新的变量,它就不是 “state”了)。

这也是 Hook 的名字总是以 use 开头的一个原因, 因为你总是在使用而不是创建。

当然,我们也可以在一个组件中定义多个变量和复杂变量(数组、对象)

import React, { memo, useState } from 'react'const App = memo(() => { // 简单数据 const [counter, setCounter] = useState(10) const [message, setMessage] = useState("Hello World") // 复杂数据 const [banners, setBanners] = useState(["aaa", "bbb", "ccc"]) const [infos, setInfos] = useState({ name: "chenyq", age: 18, height: 1.88 }) function changeNumber() { setCounter(counter + 1) } return ( <div> <h2>{counter}</h2> <button onClick={changeNumber}>+1</button> <h2>{message}</h2> <h2>{banners}</h2> <h2>{infos.name}-{infos.age}-{infos.height}</h2> </div> )})export default App
本文链接地址:https://www.jiuchutong.com/zhishi/300172.html 转载请保留说明!

上一篇:Vue —— watch和watchEffect的区别(vue watch和computed)

下一篇:OpenPCDet 训练自己的数据集详细教程!(opencv制作训练数据集)

  • 饿了么起送价怎么改(饿了么起送价怎么那么高)

    饿了么起送价怎么改(饿了么起送价怎么那么高)

  • 暗夜精灵5键盘灯怎么关(暗夜精灵5键盘怎么开灯)

    暗夜精灵5键盘灯怎么关(暗夜精灵5键盘怎么开灯)

  • 华为手机定时发送短信(华为手机定时发送短信怎么弄)

    华为手机定时发送短信(华为手机定时发送短信怎么弄)

  • 怎么把三个文件放在一个文件夹里(怎么把三个文件打包成一个文件)

    怎么把三个文件放在一个文件夹里(怎么把三个文件打包成一个文件)

  • 退款撤销后能再申请吗(撤销了退款还可以申请)

    退款撤销后能再申请吗(撤销了退款还可以申请)

  • v1928a是什么型号(v1921a是什么型号)

    v1928a是什么型号(v1921a是什么型号)

  • 京东精准达超时会怎样(京东精准达和标准达)

    京东精准达超时会怎样(京东精准达和标准达)

  • 微信收款码有手续费吗(微信收款码有手续吗)

    微信收款码有手续费吗(微信收款码有手续吗)

  • 该照片可见的朋友是什么意思(该照片可见的朋友新加的人能看到吗)

    该照片可见的朋友是什么意思(该照片可见的朋友新加的人能看到吗)

  • 为什么截屏的图片发出去是模糊的(为什么截屏的图片显示不出来)

    为什么截屏的图片发出去是模糊的(为什么截屏的图片显示不出来)

  • 手机号被别人注册抖音有影响吗(手机号被别人注册微信了怎么弄回来)

    手机号被别人注册抖音有影响吗(手机号被别人注册微信了怎么弄回来)

  • 微信头像模糊怎么解决(微信头像模糊怎么回事怎么办)

    微信头像模糊怎么解决(微信头像模糊怎么回事怎么办)

  • 微信对方无应答是什么意思(微信对方无应答是挂断吗)

    微信对方无应答是什么意思(微信对方无应答是挂断吗)

  • oppor17怎么关机教程(OPPOR17怎么关机重启)

    oppor17怎么关机教程(OPPOR17怎么关机重启)

  • 爱奇艺怎么不能调清晰度了(爱奇艺怎么不能小窗口播放)

    爱奇艺怎么不能调清晰度了(爱奇艺怎么不能小窗口播放)

  • 苹果xsmax怎么打开广角(苹果xsmax怎么打开无线充电)

    苹果xsmax怎么打开广角(苹果xsmax怎么打开无线充电)

  • 多闪能看访客吗(多闪能看到访客记录吗)

    多闪能看访客吗(多闪能看到访客记录吗)

  • 微信文件助手存放的文件在哪(微信文件助手存在哪里)

    微信文件助手存放的文件在哪(微信文件助手存在哪里)

  • 在win7系统中鼠标左键变成右键是怎么回事呢?(在windows7环境中鼠标主要的三种操作方式是)

    在win7系统中鼠标左键变成右键是怎么回事呢?(在windows7环境中鼠标主要的三种操作方式是)

  • 相见恨晚,这6个适合安卓用户的浏览器,你用过吗(相见恨晚求下联)

    相见恨晚,这6个适合安卓用户的浏览器,你用过吗(相见恨晚求下联)

  • 原生JS实现FlappyBird游戏 超详细解析 快来做一个自己玩吧(原生js实现promise.all)

    原生JS实现FlappyBird游戏 超详细解析 快来做一个自己玩吧(原生js实现promise.all)

  • 递延所得税抵消分录
  • 计提企业所得税分录
  • 印花税退税减半征收会计分录怎么写?
  • 个体工商户营业执照需要什么材料
  • 借贷记账法的基本结构
  • 应交税费转出未交增值税借贷方表示什么
  • 经营性投资是什么
  • 房产税是按不含税租金收入
  • 在公司交社保不满十年,女性按照什么退税
  • 销售货物和劳务的税率
  • 企业所得税营业税金及附加包括
  • 企业所得税税前扣除和不扣除的区别
  • 财务费用利息收入借方表示什么
  • 帮客人清关的费用如何做会计核算合适呢?
  • 工作过失扣工资合法吗
  • 没有进货发票怎么处罚
  • 企业对外借款是怎么规定的
  • 对外捐赠衣物怎样入账
  • 住宿费发票开错了可以重新开吗
  • 平台服务费如何开票
  • 票据遗失情况说明格式及范文
  • 社保发票是普票还是专票
  • 无形资产摊销年限平均法怎么算
  • 福利能开专票吗
  • 文化传媒公司的经营模式怎么写
  • 印花税滞纳金计算方法
  • 新企业的设立流程
  • 专用发票抵扣联丢失怎么办最新规定
  • 五金配件做什么科目
  • 映泰主板系统重装
  • 年度企业所得税计算方法
  • win10显示未充电
  • vite中文网
  • 任意盈余公积金的用途
  • 恩智浦杯官网
  • php获取文件内容
  • vue思维导图怎么下载
  • qss 设置字体
  • linux杀死程序
  • 计算机视角技术
  • 造孽啊啥意思
  • 预缴增值税借方余额
  • 企业的安全费用怎么弄
  • 入库管理业务流程图
  • 职工教育经费申报表如何填写
  • dedecms下载
  • 预收账款什么时候确认增值税
  • 购买的烟酒怎么入账
  • etc发票写着不征税怎么办
  • 给钱给员工自行交保险
  • 进项税额已经抵扣是什么意思
  • 短期借款利息是期间费用吗
  • 管理费用税金包括
  • 建账之前的业务怎么处理
  • 事业单位用电收费标准
  • 员工办理健康证费用由谁支付
  • 企业商品销售收入确认条件
  • 什么是资产减值准备计提
  • 变更法人需要什么条件
  • 怎么用公式计算结果填充单元格
  • sql语句参数值
  • win8自带软件
  • linux中chkconfig命令的作用
  • ubuntu root账户默认密码
  • centos怎么设置
  • 电脑蓝屏0X0000007B
  • win7系统怎么关闭防火墙设置
  • win8鼠标指针不见了
  • win7运行窗口在哪
  • perl后门,正向和反向!实例代码
  • jQuery+HTML5实现弹出创意搜索框层
  • AngularJS中controller控制器继承的使用方法
  • nodejs实战教程
  • javascript小数四舍五入多种方法实现
  • JavaScript中的this指向
  • jQuery Validation Plugin验证插件手动验证
  • js function函数
  • python 脚本
  • 杭州税务稽查举报电话
  • 什么是印花税,印花税有哪些特点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设