hooks的常用Api

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/></>)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 的数据被删除,内存占用还这么大?

作者 | 码哥来源 | 码哥字节操作系统分配给 Redis 的内存有 6GB&#xff0c;通过指标 used_memory_human 发现存储数据只使用了 4GB&#xff0c;为何会这样&#xff1f;为何无法保存数据&#xff1f;通过 CONFIG SET maxmemory 100mb或者在 redis.conf 配置文件设置 maxmemory …

阿里云架构师解读四大主流游戏架构

简介&#xff1a;游戏行业是阿里云最早聚焦的行业之一&#xff0c;近年来游戏行业的变化、云计算产品技术的变化都与日俱进。随着行业业务的变化、技术架构的演进以及阿里云产品的迭代演进&#xff0c;整体的产品技术选型在不同的游戏场景、业务场景也不尽相同。本文将聚焦阿里…

国内唯一连续入选Gartner,Quick BI是如何做到的?

简介&#xff1a;阿里云Quick BI凭借灵活的公共云部署&#xff0c;私有化独立部署能力、无缝对接各类云上数据库和自建数据库、可视化搭建分析、高效数据处理能力与强大数据计算能力&#xff0c;使得在2022年持续入选Gartner ABI魔力象限报告。 作者 | 馨心 来源 | 阿里开发者公…

context的使用

概念 一种组件间通信方式&#xff0c;常用于【祖组件】与【后代组件】间通信 应用开发过程中&#xff0c;一般不会使用context&#xff0c;一般都用它封装react插件 //1 创建Context容器对象&#xff1a; cosnt XxxContext React.createContext(); // 2 渲染子组件时&#xff…

龙蜥开源Plugsched:首次实现 Linux kernel 调度器热升级 | 龙蜥技术

简介&#xff1a;对于plugsched而言&#xff0c;无论是 bugfix&#xff0c;还是性能优化&#xff0c;甚至是特性的增、删、改&#xff0c;都可胜任。 文/龙蜥社区内核开发人员 陈善佩、吴一昊、邓二伟 Plugsched 是 Linux 内核调度器子系统热升级的 SDK&#xff0c;它可以实现…

出家12年,北大数学天才柳智宇下山还俗:从事心理咨询,主动要求降薪至2万...

整理 | 于轩 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;提到北大数学天才&#xff0c;大家脑海中首先浮现的或许是有“北大扫地僧”之称的韦东奕。虽有“扫地僧”的称呼&#xff0c;但韦东奕并不是一位真正的僧人&#xff0c;相反&#xff0c;他的师兄&am…

启明创投合伙人叶冠泰:我对云原生投资趋势的思考 | 云原生加速器观点

简介&#xff1a;投资就是一种相信&#xff0c;要相信这个产业&#xff0c;这位企业家&#xff0c;通过我们的相信去传递给下一轮合作的投资人。“相信相信的力量”&#xff0c;我相信软件的未来&#xff0c;也相信软件在中国发展的力量。 作者 | 叶冠泰 3 月 3 日 - 4 日&am…

天翼云打造国云安全品牌 铸牢企业云上安全防线

9月7日&#xff0c;2022年国家网络安全宣传周在安徽省合肥市举办。活动期间&#xff0c;中国电信天翼云举办了云原生安全产品“红盾”系列介绍会&#xff0c;会议以“红云天翼 安全普惠”为主题&#xff0c;详细介绍了“红盾”系列产品的主要功能及优势等。 数字经济时代&…

让微服务开源更普惠,阿里云微服务引擎MSE全球开服

简介&#xff1a;MSE 于2020年10月在国内开启商业化服务&#xff0c;目前已吸引近万客户使用&#xff0c;用于在云上更低成本构建、更稳定运行微服务架构。此次&#xff0c;MSE 向阿里云国际站开放服务&#xff0c;旨在帮助更多客户享受到更加普惠的微服务技术。 随着微服务技…

nodejs系列

Nodejs介绍 Node.js是一个Javascript运行环境&#xff08;runtime&#xff09;。它让JavaScript可以开发后端程序&#xff0c;它几乎能实现其他后端语言能实现的所有功能。单线程Node是基于Google V8引擎&#xff0c;V8引擎是Google发布的一款开源的JavaScript引擎。Nodejs最擅…

Dubbo-go-Mesh 开启新一代 Go 微服务形态

简介&#xff1a;Proxyless Service Mesh 能力将跟随 Dubbo-go 下一版本发布&#xff0c;稳定的性能需要社区成员们共同的关注与建设。在此基础之上&#xff0c;我们还会进一步探索轻量级 sdk sidecar的模型&#xff1b;探索基于第三方流量治理组件的金丝雀发布能力&#xff1…

2022数据安全技术大会举办

9月6日&#xff0c;2022数据安全技术大会暨中国信息协会信息安全专业委员会年会在北京举行。本届大会由中国信息协会信息安全专业委员会主办、中国信息协会信息安全专业委员会数据安全技术工作部和天空卫士联合承办&#xff0c;逾3000家企业线上参与。 国家信息中心副主任周民…

css默认样式以及解决办法

display:inline-block元素之间存在缝隙如何解决&#xff1f; 父级添加font-size&#xff1a;0; 解决前 解决后 vertical-align是干嘛的&#xff1f; 属性设置元素的垂直对齐方式 场景&#xff1a;垂直对齐一幅图像 属性&#xff1a; baseline 默认。元素放置在父元素的基线…

如何发起 MQTT 亿级连接和千万消息吞吐性能测试

简介&#xff1a;MQTT 协议凭借简单易实现、支持 QoS、报文小等特点&#xff0c;占据了物联网协议的半壁江山。 作者&#xff1a;亦炎 随着 5G 时代的来临&#xff0c;万物互联的伟大构想正在成为现实。联网的物联网设备 在 2021 年已经达到了 120 亿&#xff0c;在未来两年&…

亚信安全勒索治理「方舟」正式上线, 勒索体检中心全面开放

&#xff08;引言&#xff1a;现代勒索病毒攻击已成为网络安全最大威胁&#xff0c;隐秘深&#xff0c;破坏力巨大&#xff01;如何能够做到提早防范&#xff0c;有效应对&#xff1f;&#xff09; 【亚信安全】-【2022年9月9日】亚信安全勒索治理「方舟」正式发布&#xff01…

阿里云云原生应用平台总经理丁宇:“连接、合作、赋能”,携手加速器伙伴助力企业云上创新

简介&#xff1a;阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇表示&#xff0c;如果用三个词来形容我们希望达到的效果&#xff0c;就是连接、合作、赋能。 云原生加速器路演导师评委 进入数智化时代&#xff0c;云上创新是企业加速数字化转型、提升竞争力的必经之路。…

ts基础认识

基础数据类型 number string bolean 字面量 值本身&#xff0c;例man,woman any 任意类型 unknown 实际上就是一个类型安全的any void 没有值或undefined never 表示永远不会返回结果 object ar…

聚焦业务价值:分众传媒在 Serverless 上的探索和实践

简介&#xff1a;随着业务规模的增长&#xff0c;业务方对后台服务的弹性诉求越来越强怎么办&#xff1f;云原生峰会前线最佳落地实践心得分享&#xff1a;看分众传媒如何借助 Serverless 函数计算提升 80% 开发运维效率&#xff0c;有效降低计算成本~ 作者 | 吴松&#xff08;…

当Unity实时3D引擎遇上AI虚实交互,Unity要成为元宇宙时代的新引擎

游戏引擎巨头Unity&#xff0c;还在为蔚来、小鹏、理想等14家车厂提供智能座舱等解决方案&#xff0c;以及为香港机场、北京城建、海尔卡奥斯提供数字孪生方案。实时3D引擎&#xff0c;也将是元宇宙时代的核心支撑。 编辑 | 宋慧 出品 | CSDN AI 领域的年度盛会——2022世界人…

告警运维中心|构建高效精准的告警协同处理体系

简介&#xff1a;基于报告&#xff0c;ARMS 能快速的整合上下文&#xff0c;包括 Prometheus 监控进行监控。还有前端监控的相关数据&#xff0c;都会整合到报告里面&#xff0c;进行全方位检测来收敛相关问题。 作者&#xff1a;延福 在开始正式内容前&#xff0c;我想跟大家…