当前位置: 首页 > news >正文

react hooks 规则以及自定义hooks的实现

1.只在顶层调用hooks

2.只在函数组件中调用hooks

不要再循环 条件 或者潜逃函数中调用hooks

if(props.name){

const [count,setCount] = useState(0)

// 不建议这样使用

}

函数顶层作用域

for 循环调用也不行

不能在class 组件中调用hooks

未来class组件也会支持使用hooks

 

 

封装自定义hooks

名称以use开通 函数

// 取消订阅 防止内存泄漏

修改title的hooks

// useDocumentTitle("我是标题")

const useDocumentTitle = (title)=>{

 

useEffect(()=>{

document.title = title

// 只有title修改的时候 我才去更新title

},['title'])

}

 

 

 

 

相关文章:

  • react hooks reducer
  • react hooks 额外的钩子函数
  • 《程序员》杂志06年2月文章:Flash Lite挑战J2ME
  • CSDN Blog升级公告
  • koa文件上传2
  • 怎样成为一个Flash Lite Developer (开发篇)
  • Chat room help file
  • 小程序 - 使用async出现regeneratorRuntime is not defined错误 不能使用async 和await 的解决方案
  • react willReceiveProps 是深度比较 浅层拷贝 (虽然值变过来了 但是)还是会render 一次 immutable1
  • 怎样成为一个Flash Lite Developer (工具篇)
  • immutable与可变数据 不可变数据
  • 辞职:也要像个君子般离开
  • redux connect 原理解析 传入的mapstate 和mapdispatch connect()第一次执行后返回一个函数 这个函数接收到的参数是一个组件 对组件进行加工返回
  • Flash Lite 与 J2ME 分析比较
  • react dva 复习subscriptions: setup
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • CSS 专业技巧
  • gitlab-ci配置详解(一)
  • JAVA SE 6 GC调优笔记
  • Just for fun——迅速写完快速排序
  • linux学习笔记
  • Spring Boot快速入门(一):Hello Spring Boot
  • v-if和v-for连用出现的问题
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 飞驰在Mesos的涡轮引擎上
  • 离散点最小(凸)包围边界查找
  • 聊聊directory traversal attack
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端攻城师
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 找一份好的前端工作,起点很重要
  • 走向全栈之MongoDB的使用
  • No resource identifier found for attribute,RxJava之zip操作符
  • 7行Python代码的人脸识别
  • PostgreSQL之连接数修改
  • raise 与 raise ... from 的区别
  • zabbix3.2监控linux磁盘IO
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ###项目技术发展史
  • #、%和$符号在OGNL表达式中经常出现
  • #include到底该写在哪
  • (31)对象的克隆
  • (9)STL算法之逆转旋转
  • (规划)24届春招和25届暑假实习路线准备规划
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (十六)一篇文章学会Java的常用API
  • (四)JPA - JQPL 实现增删改查
  • ./和../以及/和~之间的区别
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Core 2.1路线图