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 相关文章推荐
use jscript Create a SQL Server database
Jun 16 Javascript
JavaScript学习笔记之获取当前目录的实现代码
Dec 14 Javascript
ie与ff下的event事件使用介绍
Nov 25 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
Aug 26 Javascript
js改变css样式的三种方法推荐
Jun 28 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
JavaScript获取select中text值的方法
Feb 13 Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
swiper 自动图片无限轮播实现代码
May 21 Javascript
如何基于javascript实现贪吃蛇游戏
Feb 09 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 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
php 生成饼图 三维饼图
2009/09/28 PHP
Yii2如何批量添加数据
2016/05/17 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
python 容器总结整理
2017/04/04 Python
python实现单向链表详解
2018/02/08 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
关于环保的建议书400字
2014/03/12 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
公司文体活动总结
2015/05/07 职场文书
撤诉状格式范本
2015/05/19 职场文书
孔子观后感
2015/06/08 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL