Ref Hook

  • Ref Hook可以在函数组件中存储/查找组件内的标签或其他数据
  • 语法:const refContainer = useRef()
  • 获取值 refContainer .current.value
  • 作用:保存标签对象,功能与React.creatRef()一样

Effect Hook

1、Effect Hook 可以让你在函数组件中执行副作用操作(用于模拟类组件中的生命周期钩子)

2、React中副作用操作:

  • 发ajax请求数据获取
  • 设置订阅/启动定时器
  • 手动更改真实DOM

3、语法和说明

useEffect(()=>{//在此可以执行任何带副作用操作return()=>{// 在组件卸载前执行}
},[stateVlaue])  //如果指定的是[],回调函数只会在第一次render()后执行

4、可以把 uerEffect Hook 看做如下三个函数的组合

  • componentDidMount()
  • componentDidUpdate()
  • conponentWillUnmount()

State Hook

1、作用: State Hook让函数组件也可以有state状态,并进行状态数据的读写操作
2、语法:const [xxx, setXxx] = React.useState(initValue)
3、userState()说明:
参数:第一次初始值指定的值在内部作缓存
返回值:包含2个元素的数组,第一个为内部当前状态值,第2个为更新状态值的函数
4、setXxx()2种写法:
setXxx(newValue):参数为非函数值,直接指定新的状态值,内部用其覆盖原来的状态值
setXxx(vlaue=>newValue):参数为函数,接收原本的状态值,返回新的状态值,内部用其覆盖原来的状态值
5、【补】setXxx列子 ——注意复合数据类型的引用,引用未更新,不会渲染。
const [num, setNum] = useState({a:1})
setNum({ ...num, ...{arr:[4,5,6]}}) 扩展运算符修改值
setNum(Object.assign({},num,{arr:[3,4,5]})) Object.assign()

例子

import React,{Fragment} from 'react';
import ReactDom from 'react-dom';//Fragment问答ing碎片 只有一个key属性
function Demo() {console.log('我执行了')const [count, setCount] = React.useState(0);const myRef = React.useRef()// React.useEffect(() => {//   // 数组中不写东西就相当于DidMount//   let time = setInterval(() => {//     setCount(count => count + 1)//   }, 1000)//   return () => {//     // return里相当于WillUnmount//   clearInterval(time)//   }// },[])function add(){setCount(count + 1)// setCount(count=>count+1)}function show() {alert(myRef.current.value)}function unMount() {ReactDom.unmountComponentAtNode(document.getElementById('root'))}return (<div><input type="text" ref={myRef} /><button onClick={show}>提示</button><br /><button onClick={add}>加一</button>{count}<button onClick={unMount}>卸载组件</button><hr /></div>)
}export default Demo

useContext

// 孙组件代码,父组件传值与context代码一致
import { useEffect,useContext } from 'react';
import Mycontext from './store'export default () => {const user = useContext(Mycontext);useEffect(() => {console.log(user)},[])return (<>b组件<br/></>)
}

hooks的常用Api相关推荐

  1. React16常用api解析以及原理剖析

    React16常用api解析以及原理剖析 目录 Vue 与 React 两个框架的粗略区别对比 react 16 版本常见 api react 生命周期 react 事件机制 react.Compon ...

  2. c++ string replace_JAVA应用程序开发之String类常用API

    [本文详细介绍了JAVA应用开发中的String类常用API,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 API ( Application Interface 应用程序接口)是类中提供的接口, ...

  3. 常用API(Object、String、StringBuffer、用户登陆注册)

    常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...

  4. Selenium Web 自动化 - Selenium常用API

    Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作   1.1 用webdriver打开一个浏览器   1.2 最大化浏览器&关闭浏 ...

  5. 【Netty】NIO 网络通信 SelectionKey 常用 API 简介

    文章目录 I . SelectionKey 简介 II . SelectionKey 事件简介 III . SelectionKey 常用 API 简介 I . SelectionKey 简介 1 . ...

  6. JavaScript一些常用 API整理汇总

    JavaScript一些常用 API整理汇总 Array new Set() 数组去重 const arr = [3,4,4,5,4,6,5,7]; console.log(new Set(arr)) ...

  7. Math工具类常用API使用案例

    对基础API的使用能够熟练掌握,能极大提高开发效率.有些知识是很简单,但并不是我们不学习和掌握它们的借口,越是简单的东西,在关键时刻越是能起到至关重要的作用,就好比我们花很长时间解决的一个BUG,结果 ...

  8. Hibernate一级缓存常用API

    一级缓存特点: 当我们通过session的save,update saveOrupdate进行操作时,如果一级缓存中没有对象,会将这些对象从数据库中查询到,存储到一级缓存. 当我们通过session的 ...

  9. Object类、常用API

    # [Object类.常用API] ## 主要内容 * Object类 * Date类 * DateFormat类 * Calendar类 * System类 * StringBuilder类 * 包 ...

最新文章

  1. C#23种开发模式,陆续完善中
  2. OpenStack发布最新版本Ocata
  3. 启动转换安装失败 拷贝windows安装文件时出错_男人的生产力工具:极速拷贝 效率神器 TeraCopy精品推荐...
  4. web前端知识点太多_web前端入门必学的16个知识点,都来看一下吧
  5. ptyhon中文本挖掘精简版
  6. PS教程第二十五课:自由选区
  7. 字符串数值的比较 java
  8. 随想录(程序语言只是SE的敲门砖)
  9. 【ACL2021】三篇高质量方面级的情感分析方法解读
  10. 15、作用域public、private、protected 以及不写时的区别
  11. 恒指赵鑫:06.13今日实盘喊单记录与小结
  12. auto.js制作简易音乐app(一)
  13. php从一个字符串中过滤掉英文,php过滤只保留中文,英文以及数字的方法
  14. AndroidStudio合并冲突失败,总在merging状态
  15. 汇编程序:通过查表方法实现0-9的平方
  16. ant安装和ant的环境配置
  17. 详解tf.variable_scope函数
  18. arcgis安装后重启提示 flexnet vendor daemon 交互式服务检测
  19. 【java 】 for循环中冒号作用
  20. SecureCRT如何设置窗口下黑底白字

热门文章

  1. myeclipse打包java文件_MyEclipse将Java项目打包成jar文件的三种方法
  2. el-table跨页选中
  3. Linux中存储相关的命令,Linux存储管理命令与HAB相关命令
  4. 985研究生连论文都不会写,还面试什么大厂
  5. 删库不跑路,详解MySQL数据恢复
  6. 本科生一作发10篇SCI,我们硕博生情何以堪啊……
  7. 想学好数学,请收好这份宝典!
  8. mysql 二维数组下标_php二维数组指定下标排序
  9. linux menuconfig usb,[Linux]make menuconfig里面的选项很重要
  10. 【转载保存】WebCollector 2.x 入门教程