react更新到16.8版本后最主要的内容就是增加了hook这个特性,它的主要作用可以理解为对react的函数组件进行了一次升级,使react的函数组件拥有了和react类组件一样的功能(关于以前版本react的组件的介绍可以移步到这里观看:react创建组件的几种方法,以及区别)。


Hook是什么:

Hook 是一些可以让你在函数组件里“钩入” React state 及生命周期等特性的函数。Hook 不能在 class 组件中使用 —— 这使得你不使用 class 也能使用 React。
React 内置了一些像 useState 这样的 Hook。你也可以创建你自己的 Hook 来复用不同组件之间的状态逻辑。


首先我们来学习第一个hook

useState()
import React, { useState } from 'react'export default function Main() {const [count, setCount] = useState(0);return (<div><p>You clicked {count} times</p><button onClick={() => setCount(count + 1)}>Click me</button></div>)
}
使用步骤:
  1. 首先引入从’react’中引入useState。
  2. 在return之前定义一个数组,数组里面有俩个参数,第一个相当于类组件当中的this.state.xxx,而第二个参数就是一个方法,改变前一个参数值的方法。赋值为上面导入的useState()括号里面设置初始值,传递多个参数无用,只会找到你的第一个参数然后解构给你的数组第一个值。我们控制台输出一下useState()会更直观一些。
console.log(useState())
console.log(useState(1))
console.log(useState('12',55))

输出结果如下:

可以看到,我们如果不给初始值的话就是undefined,如果给多个值的话会忽略后面的值。PS:定义初始值的时候要注意数据类型哦。
第二个参数的方法就是用来改变这个值的。

<button onClick={() => setCount(count + 1)}>Click me
</button>

此例子在button按钮每次被点击的时候就会使count+1。

在一个组件内部可以创建多个State变量。

const [count, setCount] = useState(0);
const [age, setAge] = useState(16);
const [name, setName] = useState('吴小迪');

注意点:
state变量名或者函数名是不可以重复的哦,需要保证每一个都是唯一的。否则就会报错!

const [count, setCount] = useState(0);
const [count, setCount] = useState(0);

了解react-hook以及State Hook相关推荐

  1. reactjs三个常用的Hook:State Hook、 Effect Hook、 Ref Hook

    1. React Hook/Hooks是什么? (1). Hook是React 16.8.0版本增加的新特性/新语法 (2). 可以让你在函数组件中使用 state 以及其他的 React 特性 2. ...

  2. 这可能是你们都在找的:React 纯原生纯hook多标签微前端

    项目地址:https://github.com/X-neuron/antdFront.git 项目特点:     1.采用webpack.babel.antd 等较为原生的配置和函数组件搭建,支持pw ...

  3. Hook是什么,React为什么要引入Hook

    简介 Hook 是 React 16.8 的新增特性.它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性.Hook 是向下兼容的. Hook 是一些可以让你在函数组 ...

  4. 使用 State Hook

    前文介绍了如下的Hooks例子 https://blog.csdn.net/qq_39606853/article/details/122283215?spm=1001.2014.3001.5501 ...

  5. react 进阶必学 hook (一):useState 来一碗大碗宽面

    系列文章传送门: react 进阶必学 hook (一):useState 来一碗大碗宽面 react 进阶必学 hook (二):useEffect 专治不吃宽面 react 进阶必学 hook ( ...

  6. react 进阶必学 hook (三):useContext 面馆分店开张了

    系列文章传送门: react 进阶必学 hook (一):useState 来一碗大碗宽面 react 进阶必学 hook (二):useEffect 专治不吃宽面 react 进阶必学 hook ( ...

  7. hook——useState——useState的并发写法——受控组件—— 自定义hook函数-封装hook

    简介 在 React 的世界中,有容器组件和 UI 组件之分,在 React Hooks 出现之前,UI 组件我们可以使用函数组件,无状态组件来展示 UI,而对于容器组件,函数组件就显得无能为力,我们 ...

  8. Hook技术之Hook Activity

    一.Hook技术概述 Hook技术的核心实际上是动态分析技术,动态分析是指在程序运行时对程序进行调试的技术.众所周知,Android系统的代码和回调是按照一定的顺序执行的,这里举一个简单的例子,如图所 ...

  9. 【Android 插件化】Hook 插件化框架 ( Hook 实现思路 | Hook 按钮点击事件 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  10. [react] react组件的state和props两者有什么区别?

    [react] react组件的state和props两者有什么区别? State 是一种数据结构,用于组件挂载时所需数据的默认值.State 可能会随着时间的推移而发生突变,但多数时候是作为用户事件 ...

最新文章

  1. 计算机到计算机 临时网络,电脑如何设置临时网络
  2. Spring MVC 搭建web项目示例
  3. 6、用户登录并发、新建以及编辑操作;
  4. 以下可以作为c语言合法变量名的是,2016年河南科技学院信息工程学院C语言上机编程复试笔试最后押题五套卷...
  5. JavaScript中的全局变量介绍
  6. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 图像分类
  7. Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法
  8. linux 更新软件源
  9. 机虚拟磁盘附加到计算机上,Hyper-V 怎样拷贝文件至虚拟硬盘并附加到虚拟机上...
  10. 真无线蓝牙耳机哪个好?四款买了不亏的真无线蓝牙耳机
  11. linux操作系统启动盘,轻松制作Linux操作系统启动盘的四种通行方法
  12. 配音秀 v8.10.255
  13. Facebook更名Meta,扎克伯格押注元宇宙
  14. 揭秘空手套白狼的灰色产业,人性背后的暴利
  15. 基于STM32:情侣互动玩偶(设计方案+源码+3D图纸+AD电路)
  16. 大数据开发工程师招聘要求高吗?
  17. 贝塞尔曲线和B样条曲线
  18. python的socket
  19. 改变屏幕分辨率的小程序
  20. linux下安装MySQL遇到的坑

热门文章

  1. 2017全球ROI Top25游戏广告平台排行榜
  2. 计算机基础知识学习题,超全的计算机基础知识题库【精心整理_完全免费】.pdf...
  3. 三、C语言常用的库函数
  4. redis源码解析(二)——SDS(简单动态字符串)
  5. 2021高考成绩省内排名查询,云南高考排名查询方法 2021年云南高考成绩位次全省排名查询...
  6. python对文件重命名快捷键_Pycharm快捷键配置详细整理
  7. 数据库原理—— 存储过程
  8. 错误与编程——抛弃 C程序设计 中的谬误与恶习
  9. HTML,JS与CSS
  10. UG/NX二次开发入门手册