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中“+=”的应用
Feb 02 Javascript
jquery 全局AJAX事件使用代码
Nov 05 Javascript
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
Aug 11 Javascript
AngularJS用户选择器指令实例分析
Nov 04 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
Dec 01 Javascript
基于JavaScript实现窗口拖动效果
Jan 18 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
Feb 21 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
Jul 17 Javascript
JS获取当前时间戳方法解析
Aug 29 Javascript
Ajax是什么?Ajax高级用法之Axios技术
Apr 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性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
jQuery中的常用事件总结
2009/12/27 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
Python3 tkinter 实现文件读取及保存功能
2019/09/12 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
Python 如何测试文件是否存在
2020/07/31 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
家长会欢迎词
2015/01/23 职场文书
委托公证书格式
2015/01/26 职场文书
初中政治教学反思
2016/02/23 职场文书
奖学金申请书(范文)
2019/08/14 职场文书