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 相关文章推荐
发一个自己用JS写的实用看图工具实现代码
Jul 26 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
Mar 12 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
Feb 05 Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 Javascript
js仿淘宝商品放大预览功能
Mar 15 Javascript
学习使用Bootstrap栅格系统
May 11 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
js实现简单选项卡功能
Mar 23 Javascript
详解mpvue scroll-view自动回弹bug解决方案
Oct 01 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
Jun 18 Javascript
ES6基础之字符串和函数的拓展详解
Aug 22 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
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
js查错流程归纳
2012/05/04 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
python读写csv文件的方法
2019/08/13 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
Tensorflow累加的实现案例
2020/02/05 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
APM Monaco中国官网:来自摩纳哥珠宝品牌
2017/12/27 全球购物
德国网上宠物店:Zoobio
2018/05/23 全球购物
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
三年级数学教学反思
2014/01/31 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
监察建议书
2015/02/04 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js