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.post用法关于type设置问题补充
Jan 03 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
js控制文本框输入的字符类型方法汇总
Jun 19 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
Apr 19 Javascript
js内置对象处理_打印学生成绩单的简单实现
Sep 24 Javascript
常用的javascript设计模式
Jan 11 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
Feb 20 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
Dec 12 Javascript
Vue触发隐藏input file的方法实例详解
Aug 14 Javascript
vue中进行微博分享的实例讲解
Oct 14 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操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
PHP实现验证码校验功能
2017/11/16 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
vue实现商城上货组件简易版
2017/11/27 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python yield 使用浅析
2015/05/28 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
浅谈Python基础—判断和循环
2019/03/22 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
六十大寿答谢词
2014/01/12 职场文书
企业安全生产承诺书
2014/05/22 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
2014年党委工作总结
2014/11/22 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
南极大冒险观后感
2015/06/05 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
七年级作文之环保作文
2019/10/17 职场文书
Python实现自动玩连连看的脚本分享
2022/04/04 Python