iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >React中常用的Hook有哪些
  • 225
分享到

React中常用的Hook有哪些

ReactHook原理ReactHook有哪些 2023-01-10 12:01:12 225人浏览 薄情痞子
摘要

目录一、简介二、使用1、State Hook2、Effect Hook3、Ref Hook一、简介 Hook是React 16.8.0版本增加的新特性/新语法 可以在函数组件中使用

一、简介

Hook是React 16.8.0版本增加的新特性/新语法

可以在函数组件中使用 state 以及其他的 React 特性

二、使用

1、State Hook

(1)State Hook让函数组件也可以有state状态, 并进行状态数据的读写操作

(2)语法: const [xxx, setXxx] = React.useState(initValue)

(3)useState()说明:

参数: 第一次初始化指定的值在内部作缓存
返回值: 包含2个元素的数组, 第1个为内部当前状态值, 第2个为更新状态值的函数

(4)setXxx()2种写法:

setXxx(newValue): 参数为非函数值, 直接指定新的状态值, 内部用其覆盖原来的状态值
setXxx(value => newValue): 参数为函数, 接收原本的状态值, 返回新的状态值, 内部用其覆盖原来的状态值

用类式组件如下:

export default class Demo extends Component {
	state = {count:0}
	add = () => {
		this.setState(state => ({count: state.count + 1}))
	}
	render() {
		return (
			<div>
				<h2>当前求和为:{this.state.count}</h2>
				<button onClick={this.add}>点我加1</button>
			</div>
		)
	}
}

用函数式组件如下:

export default function Demo() {
	const [count,setCount] = React.useState(0)
	// 其他状态也要用同样的方法
	const [name,setName] = React.useState('Jack')
	function add() {
		// 写法一
		// setCount(count + 1)
		// 写法二
		setCount(count => count + 1)
	}
	return (
		<div>
			<h2>当前求和为:{this.state.count}</h2>
			<button onClick={add}>点我加1</button>
		</div>
	)
}

Demo函数调用1+n次,每次调用const [count,setCount] = React.useState(0)都会执行,理论上count的值一直都是0,但实际上每次点击按钮count的值都会加1。那是因为React底层做了处理,第一次调用的时候就把count的值存下来了,后续再调用函数的时候不会因为传入的是0把原来的值给覆盖掉。

2、Effect Hook

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

(2)React中的副作用操作:

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

(3)语法和说明:

useEffect(() => { 
    // 在此可以执行任何带副作用操作
    return () => { // 在组件卸载前执行
      // 在此做一些收尾工作, 比如清除定时器/取消订阅等
    }
}, [stateValue]) // 如果指定的是[], 回调函数只会在第一次render()后执行

(4)可以把 useEffect Hook 看做如下三个函数的组合

componentDidMount()
componentDidUpdate()
componentWillUnmount() 

用类式组件如下:

export default class Demo extends Component {
	state = {count:0}
	add = () => {
		this.setState(state => ({count: state.count + 1}))
	}
	unmount = () => {
		ReactDOM.unmountComponentAtnode(document.getElementById('root'))
	}
	componentDidMount() {
		this.timer = setInterval(() => {
			this.setState(state => ({count:state.count + 1}))
		},1000)
	}
	componentWillUnmount(){
		clearInterval(this.timer)
	}
	render() {
		return (
			<div>
				<h2>当前求和为:{this.state.count}</h2>
				<button onClick={this.add}>点我加1</button>
				<button onClick={this.unmount}>卸载组件</button>
			</div>
		)
	}
}

用函数式组件如下:

export default function Demo() {
	const [count,setCount] = React.useState(0)
	React.useEffect(() => {
		let timer = setInterval(() => {
			setCount(count=> count + 1)
		},1000)
		return () => {
			clearInterval(timer)
		}
	},[])
	function add() {
		setCount(count => count + 1)
	}
	function unmount() {
		ReactDOM.unmountComponentAtNode(document.getElementById('root'))
	}
	return (
		<div>
			<h2>当前求和为:{this.state.count}</h2>
			<button onClick={add}>点我加1</button>
			<button onClick={unmount}>卸载组件</button>
		</div>
	)
}

(1)React.useEffect(() => {}),如果第二个参数没有写,会监测所有的状态,初始化以及每个状态变化的时候都会调用,相当于componentDidMountcomponentDidUpdate

(2)React.useEffect(() => {},[]),如果第二个参数是空数组,所有的状态都不会监测,执行1次(初始化),相当于componentDidMount

(3)React.useEffect(() => {},[count]),监测count值,执行1+n次(初始化以及count值变化的时候)

(4)React.useEffect(() => {})中返回一个函数,相当于componentWillUnmount

3、Ref Hook

(1)Ref Hook可以在函数组件中存储/查找组件内的标签或任意其它数据

(2)语法: const refContainer = useRef()

(3)作用:保存标签对象,功能与React.createRef()一样

用类式组件如下:

export default class Demo extends Component {
	myRef = React.createRef()
	show = ()=>{
		alert(this.myRef.current.value)
	}
	render() {
		return (
			<div>
				<input type="text" ref={this.myRef}/>
				<button onClick={this.show }>点击提示数据</button>
			</div>
		)
	}
}

用函数式组件如下:

export default class Demo extends Component {
	const myRef = React.useRef()
	function show() {
		alert(myRef.current.value)
	}
	render() {
		return (
			<div>
				<input type="text" ref={myRef}/>
				<button onClick={show }>点击提示数据</button>
			</div>
		)
	}
}

到此这篇关于React中常用的Hook有哪些的文章就介绍到这了,更多相关React Hook内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: React中常用的Hook有哪些

本文链接: https://www.lsjlt.com/news/177269.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • React中常用的Hook有哪些
    目录一、简介二、使用1、State Hook2、Effect Hook3、Ref Hook一、简介 Hook是React 16.8.0版本增加的新特性/新语法 可以在函数组件中使用 ...
    99+
    2023-01-10
    React Hook原理 React Hook有哪些
  • 有哪些React Hook库
    本篇内容介绍了“有哪些React Hook库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.use-ht...
    99+
    2024-04-02
  • react中使用hook有哪些好处
    今天小编给大家分享一下react中使用hook有哪些好处的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2024-04-02
  • 简化React Hook的方法有哪些
    这篇文章主要讲解了“简化React Hook的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“简化React Hook的方法有哪些”吧!1. 减少 ...
    99+
    2024-04-02
  • react中常见hook的使用方式
    目录1、什么是hook? 2、为什么要出现hook? 3、有哪些常用的hook? (1) useState (2) useEffect (3) useContext (4) useR...
    99+
    2024-04-02
  • React中常用的两个Hook是什么
    这篇文章给大家分享的是有关React中常用的两个Hook是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先介绍一下什么是hookHook是React 16.8新增的特性,专门...
    99+
    2024-04-02
  • React-Native中有哪些常用的组件
    本篇文章给大家分享的是有关React-Native中有哪些常用的组件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ScrollView组件能够调用移动平台的ScrollView...
    99+
    2023-05-31
    react-native
  • React Hook中如何使用State Hook
    今天小编给大家分享一下React Hook中如何使用State Hook的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起...
    99+
    2023-06-29
  • React Hook用法示例详解(6个常见hook)
    1、useState:让函数式组件拥有状态 用法示例: // 计数器 import { useState } from 'react' const Test = () =>...
    99+
    2024-04-02
  • React Hook之使用State Hook的方法
    目录等价的class示例Hook和函数组件Hook是什么?声明State变量读取State更新State小结提示:方括号有什么用?提示:使用多个state变量总结Hook 简介章节中...
    99+
    2024-04-02
  • react常见的路由有哪些
    今天小编给大家分享一下react常见的路由有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。react路由有:1、页面路由...
    99+
    2023-07-04
  • React中10种Hook的使用介绍
    目录React Hook是什么? React目前提供的Hook 1.useState 2.useEffect & useLayoutEffect 3.useMemo &...
    99+
    2024-04-02
  • Hook怎么在React中使用
    Hook怎么在React中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、useState:让函数式组件拥有状态用法示例:// 计数器impor...
    99+
    2023-06-14
  • hook如何在react中使用
    今天就跟大家聊聊有关hook如何在react中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、什么是hook?react hook是react 16.8推出的方法,能够让函数式...
    99+
    2023-06-14
  • React中key的作用有哪些
    这篇文章将为大家详细讲解有关React中key的作用有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。要了解React中key的作用,可以从key的取值入手,key的取值可以分为三种,不定值、索引值、确...
    99+
    2023-06-14
  • React Hook的使用示例
    目录一个简单的组件案例 更复杂的父子组件案例 如何写onSelectReact.ChildrenReact.cloneElement父组件数据如何传递给子组件index数据...
    99+
    2024-04-02
  • React中10种Hook的使用方法
    本篇文章给大家分享的是有关React中10种Hook的使用方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。React Hook是什么?React官网是这么介绍的: Hook ...
    99+
    2023-06-25
  • react中hook的概念是什么
    本文小编为大家详细介绍“react中hook的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“react中hook的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • 浅析React Hook中useEffecfa函数的使用
    我们知道在类组件中是可以有生命周期函数的, 那么如何在函数组件中定义类似于生命周期这些函数呢Effect Hook 可以让你来完成一些类似于class中生命周期的功能;事实上,类似于网络请求、手动更新DOM、一些事件的监听,都是React更...
    99+
    2022-11-22
    React Hook React
  • 自定义Hook的方法有哪些
    这篇文章主要介绍“自定义Hook的方法有哪些”,在日常操作中,相信很多人在自定义Hook的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”自定义Hook的方法有哪些”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作