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 相关文章推荐
jquery下onpropertychange事件的绑定方法
Aug 01 Javascript
jquery中this的使用说明
Sep 06 Javascript
JS去除字符串两端空格的简单实例
Dec 27 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
Jun 06 Javascript
javascript和jquery实现用户登录验证
May 04 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 Javascript
input框中的name和id的区别
Nov 16 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
Feb 08 Javascript
微信小程序中多个页面传参通信的学习与实践
May 05 Javascript
详解jQuery中关于Ajax的几个常用的函数
Jul 17 jQuery
IE11下处理Promise及Vue的单项数据流问题
Jul 24 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 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
风格模板初级不完全修改教程
2006/10/09 PHP
php 多线程上下文中安全写文件实现代码
2009/12/28 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
用PHP代码给图片加水印
2015/07/01 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
用js实现计算加载页面所用的时间
2010/04/02 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
python实现五子棋小程序
2019/06/18 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
数字漫画:comiXology
2020/06/13 全球购物
代理商会议邀请函
2014/01/27 职场文书
校庆口号
2014/06/20 职场文书
公司股东合作协议书
2014/09/14 职场文书
大学感恩节活动总结
2015/05/05 职场文书
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
python异步的ASGI与Fast Api实现
2021/07/16 Python