react的hooks的用法详解


Posted in Javascript onOctober 12, 2020

hooks的作用

它改变了原始的React类的开发方式,改用了函数形式;它改变了复杂的状态操作形式,让程序员用起来更轻松;它改变了一个状态组件的复用性,让组件的复用性大大增加。

useState

// 声明状态
const [ count , setCount ] = useState(0);

// 使用状态
<p>You clicked {count} times</p>
<button onClick={()=>{setCount(count+1)}}>click me</button>

useEffect

一个参数

useEffect(()=>{
 console.log("首次渲染与更新")
})

模拟:
componentDidMount componentDidUpdate

一个参数带return

useEffect(()=>{
 console.log("首次渲染与更新")
return ()=>{console.log(首次卸载)}
})

 模拟:

  • componentDidMount
  •  componentDidUpdate

return

  •  componetWillUnmount
  •  componentDidUpdate

第二个参数是空数组,return

useEffect(()=>{
 console.log("首次渲染与更新")
return ()=>{console.log(首次卸载)}
},[])

相对于生命周期的componentDidMount和componetWillUnmount

第二个参数是具体的值

useEffect(()=>{
 console.log("首次渲染与更新")
return ()=>{console.log(首次卸载)}
},[num])

模拟

  • componentDidMount
  • componentDidUpdate(update只对num有用)

return

  •  componetWillUnmount
  •  componentDidUpdate(update只对num有用)

useRef

const inp = useRef(null)
<input ref={inp}>
//调用
inp.current.value

自定义hook

定义:const [size,setSize] = useState({height:xxx,width:xxx})

处理:

const onResize = ()=>{setSize({width:xxx,height:xxx})}
 useEffect(()=>{
监听事件 window.addEventListener(“resize”,onResize)
 return 移除监听()=>window.removeEventListener(“resize”,onResize)
 },[])

返回 return size

使用 const size = useWinSize()

到此这篇关于react的hooks的用法详解的文章就介绍到这了,更多相关react hooks用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js 页面输出值
Nov 30 Javascript
HTML,CSS,JavaScript速查表推荐
Dec 02 Javascript
Javascript动态创建div的方法
Feb 09 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
基于javascript实现句子翻牌网页版小游戏
Mar 23 Javascript
js图片切换具体实现代码
Oct 13 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
Nov 23 Javascript
jsonp跨域请求实现示例
Mar 13 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
Jul 19 Javascript
JS面向对象实现飞机大战
Aug 26 Javascript
微信小程序实现日历签到
Sep 21 Javascript
微信小游戏中three.js离屏画布的示例代码
Oct 12 #Javascript
原生JavaScript实现弹幕组件的示例代码
Oct 12 #Javascript
分享8个JavaScript库可更好地处理本地存储
Oct 12 #Javascript
浅析我对JS延迟异步脚本的思考
Oct 12 #Javascript
Webpack5正式发布,有哪些新特性
Oct 12 #Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
Oct 12 #Javascript
移动端JS实现拖拽两种方法解析
Oct 12 #Javascript
You might like
PHP计数器的实现代码
2013/06/08 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
php常用字符函数实例小结
2016/12/29 PHP
解决php写入数据库乱码的问题
2019/09/17 PHP
5款Javascript颜色选择器
2009/10/25 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
一道Delphi面试题
2016/10/28 面试题
学生的自我鉴定范文
2013/10/24 职场文书
企业管理培训感言
2014/01/27 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
Nginx配置https的实现
2021/11/27 Servers
java executor包参数处理功能 
2022/02/15 Java/Android