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 相关文章推荐
用JavaScript隐藏控件的方法
Sep 21 Javascript
UserData用法总结 lanyu出品
Jul 01 Javascript
JavaScript arguments 多参传值函数
Oct 24 Javascript
js 动态为textbox添加下拉框数据源的方法
Apr 24 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
Aug 20 Javascript
详解js实时获取并显示当前时间的方法
May 10 Javascript
vue.js购物车添加商品组件的方法
Sep 17 Javascript
精读《Vue3.0 Function API》
May 20 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
jQuery实现购物车全功能
Jan 11 jQuery
微信小游戏中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
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
理解JS绑定事件
2016/01/19 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
Python中用Spark模块的使用教程
2015/04/13 Python
python实现Windows电脑定时关机
2018/06/20 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
python try...finally...的实现方法
2020/11/25 Python
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
幼教简历自我评价
2014/01/28 职场文书
三年级小学生评语
2014/04/22 职场文书
升学宴答谢词
2015/01/05 职场文书
小学端午节活动总结
2015/02/11 职场文书
北京英文导游词
2015/02/12 职场文书
保送生自荐信
2015/03/06 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
理解深度学习之深度学习简介
2021/04/14 Python