首页 > 其他分享 >react常用hooks

react常用hooks

时间:2023-12-17 13:12:40浏览次数:35  
标签:React 常用 const hooks react callback useState return useEffect

useMount

const useMount = (callback) => {
  React.useEffect(callback, [])
}

 

useUnmounted

 1 const useUnmount = (callback) => {
 2   const callbackRef = React.useRef(callback)
 3   
 4   callbackRef.current = callback
 5   
 6   React.useEffect(() => {
 7     return () => {
 8       callbackRef.current()
 9     }
10   }, [])
11 }

  

定时器

 1 import React, {useState, useEffect} from "react"
 2 
 3 const Counter = ({initialCount = 0}) => {
 4   const [count, setCount] = useState(initialCount)
 5 
 6   useEffect(() => {
 7     const timerId = setInterval(() => {
 8       setCount(prevCount => prevCount + 1)
 9     }, 1000)
10 
11     return () => clearInterval(timerId);
12   }, [])
13 
14   return (
15     <div>
16       <h1>当前计数:{count}</h1>
17     </div>
18   )
19 }
20 
21 export default Counter

 

部分更新state

 1 import React, {useState, useEffect} from "react"
 2 
 3 const useSetState = (initState) => {
 4   const [state, setState] = React.useState(initState)
 5 
 6   const setMergeState = (value) => {
 7     setState((prevValue) => {
 8       const newValue = typeof value === 'function' ? value(prevValue) : value
 9       return newValue ? {...prevValue, ...newValue} : prevValue
10     })
11   }
12 
13   return [state, setMergeState]
14 }
15 
16 const Counter = ({initialCount = 0}) => {
17   const [person, setPerson] = useSetState({
18     name: 'aaaa',
19     age: 100
20   })
21   const onSetName = () => {
22     setPerson({name: 'bbb'})
23   }
24 
25   return (
26     <div>
27       <button onClick={onSetName}>改变</button>
28       <div>{person.name}</div>
29     </div>
30   )
31 }
32 
33 export default Counter

 

标签:React,常用,const,hooks,react,callback,useState,return,useEffect
From: https://www.cnblogs.com/zhishaofei/p/17908956.html

相关文章

  • 性能测试复习准备——linux环境下——常用命令简记
       firewalldfirewall-cmd常用命令网址:https://www.cnblogs.com/klvchen/p/10063875.html#开启防火墙systemctlstartfirewalld.service#防火墙开机启动systemctlenablefirewalld.service#关闭防火墙systemctlstopfirewalld.service#查看防火墙状态......
  • Spring Boot Actuator 使用和常用配置
    转载请注明出处:SpringBootActuator是SpringBoot提供的一个非常强大的工具,它可以帮助我们监控和管理我们的SpringBoot应用。Actuator提供了一系列的端点,我们可以通过这些端点来查看我们的应用的运行状态,例如健康状态、指标、信息、数据库连接、Redis连接等等1.配置Spring......
  • C++常用STL容器
    1.queue#include<queue>usingnamespacestd;queue<int>q;常用方法1.size()q.size()值为所包含的元素的个数2.front()q.front()头元素3.back()q.back()尾元素4.push()q.push(value)将value加入队列q中5.pop()q.pop()将头元素弹出队列q中测试代码:#include<i......
  • React 随记
    React没有响应式的概念useState的两个功能提供更新函数缓存变量数组或对象必须整体更新immutablemutable两个优点useRef的更新函数不会导致视图刷新普通变量也可以在视图中显示但是不会被监听状态的定义需要反向排除考虑并不是所有视图的需要的数据就定义为状态函......
  • 第五章:SpringMVC的常用注解
    一、21、springMVC常用注解二、springMVC相关注解理论整合1、@RequestMapping:用来处理请求地址映射的注解,可用于类或方法上@RequestMapping("/path")表示该控制器处理所有"/path"的URL请求。用于类上,表示类中的所有响应请求的方法都是以该地址作......
  • Letax常用数学符号
    Latex常用数学符号1.关系运算符符号LaTeX代码\(=\)=\(\neq\)\neq\(\leq\)\leq\(\geq\)\geq\(\ll\)\ll\(\gg\)\gg\(\leqslant\)\leqslant\(\geqslant\)\geqslant\(\equiv\)\equiv\(\not\equiv\)\not......
  • #yyds干货盘点#一文了解Redis常用命令
    本文包括Redis中常用的一些命令,包括针对所有的键相关的命令,以及5种常用数据类型:字符串、哈希、列表、集合以及有序集合的一些命令。鉴于个人水平有限,文章中若有不对之处,烦请大家留言指正。键相关查看所有的键keys会遍历所有的键,它的时间复杂度是O(n),因此当Redis保存了大量的键时,这......
  • 遍历utf-8编码下的所有汉字得出的个数是20901个,最终发现实际里面多数是不认识的,常用汉
    utf-8编码下的汉字个数是多少?从正则表达式可以看出  4E00-9FA5实用php遍历一下所有汉字1<?php2//4E00-9FA53//输出所有汉字4header('Content-Type:text/html;charset=utf8');//非必要5$start=hexdec('4e00');//等于0x4e00;hexdec是16进制转为10进制......
  • linux常用27个命令
    (红帽子)cd/回车ls回车可以看到一些目录:bin存放常用命令boot存放启动程序dev存放设备文件etc存放启动,关闭,配置程序与文件home用户工作目录lib存放共享链接库root超级用户的工作目录tmp存放临时文件proc操作系统的实时信息sys系统的硬件设备信息var主要存放系统日志usr......
  • Git——常用命令
    1.第一次初始化gitinit  初始化仓库gitadd.gitcommit-m‘firstcommit’[email protected]:帐号名/仓库名.gitgitpulloriginmastergitpushoriginmaster#-f强推[email protected]:git帐号名/仓库名.git 2.基本操作gitche......