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替换DOM节点的方法
Jun 11 Javascript
jQuery实现宽屏图片轮播实例教程
Nov 24 Javascript
jquery判断复选框是否选中进行答题提示特效
Dec 10 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
May 10 Javascript
移动端界面的适配
Jan 11 Javascript
vue下跨域设置的相关介绍
Aug 26 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
JavaScript函数绑定用法实例分析
Nov 14 Javascript
Vue中android4.4不兼容问题的解决方法
Sep 04 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
详解JavaScript类型判断的四种方法
Oct 21 Javascript
vue+element_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
微信小游戏中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数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
理解JavaScript中的事件
2006/09/23 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
vue-cli3 热更新配置操作
2020/09/18 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
Python随手笔记之标准类型内建函数
2015/12/02 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
大学生校园创业计划书
2014/02/08 职场文书
优秀员工评语
2014/02/10 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
新店开张宣传语
2015/07/13 职场文书
小学语文教学反思范文
2016/03/03 职场文书