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中循环控制语句的用法
Jun 03 Javascript
跟我学习javascript的函数和函数表达式
Nov 16 Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
Nov 21 Javascript
js实现固定宽高滑动轮播图效果
Jan 13 Javascript
jquery实现图片轮播器
May 23 jQuery
jQuery用户头像裁剪插件cropbox.js使用详解
Jun 07 jQuery
JavaScript学习总结之正则的元字符和一些简单的应用
Jun 30 Javascript
vue使用keep-alive实现数据缓存不刷新
Oct 21 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
JavaScript实现单英文金山打字通
Jul 24 Javascript
简单了解JavaScript作用域
Jul 31 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
header导出Excel应用示例
2014/01/24 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
jquery ajax请求实例深入解析
2012/11/26 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
JS中call和apply函数用法实例分析
2018/06/20 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
浅析Python编写函数装饰器
2016/03/18 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
新手学python应该下哪个版本
2020/06/11 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
Python如何测试stdout输出
2020/08/10 Python
python温度转换华氏温度实现代码
2020/12/06 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
毕业实习个人鉴定范文
2013/12/10 职场文书
推广普通话演讲稿
2014/05/23 职场文书
文明城市创建标语
2014/06/16 职场文书
公益广告标语
2014/06/19 职场文书
师德师风自我评价范文
2014/09/11 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
食品安全主题班会
2015/08/13 职场文书
禁毒心得体会范文
2016/01/15 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL