React-封装自定义Hook

1.声明函数

说明:声明一个以use打头的函数

javascript 复制代码
function useToggle(){
 
}

2.封装

说明:在函数体内封装可复用的逻辑

javascript 复制代码
  const [value,setValue]=useState(true)
  const toggle=()=>{
    setValue(!value)
  }

3.返回

说明:把组件中用到的状态或者回调return

javascript 复制代码
  return {
    value,toggle
  }

4.解构

说明:组件中用到这个逻辑,就执行这个函数同时解构出变量

javascript 复制代码
const {value,toggle}=useToggle()

5.源码

javascript 复制代码
//封装自定义Hook 
// 问题 :布尔值的逻辑 当前组件耦合在一起的 不方便复用


import { useState } from "react";


function useToggle(){
  const [value,setValue]=useState(true)
  const toggle=()=>{
    setValue(!value)
  }
  return {
    value,toggle
  }
}

function App() {
const {value,toggle}=useToggle()

  return (
    <div>
   { value&&<div>this is div</div>} 
    <button onClick={toggle}>toggle</button>
    </div>
  );
}

export default App;

6.使用规则

说明: 只能在组件中或者其他自定义Hook函数中调用;只能在组件的顶层调用,不能在if、for、其他函数中调用函数。

相关推荐
JustHappy1 小时前
古法编程秘籍(二):什么是代码模块化?别背概念,把房间收拾明白就够了
前端·后端
小江的记录本1 小时前
【JVM虚拟机】堆内存分代模型:年轻代(Eden+Survivor)、老年代、元空间Metaspace(附《思维导图》+《面试高频考点清单》)
java·前端·jvm·后端·python·spring·面试
weixin_471383032 小时前
图片预解码缓存
前端·浏览器缓存·图片预解码
一起学开源2 小时前
一文读懂 ReAct 范式:让 AI Agent 真正学会“思考+行动“
java·javascript·react.js·ecmascript·react·alibaba·智能体开发
郑洁文3 小时前
基于网络爬虫的Web敏感信息泄露自动化检测工具
前端·爬虫·网络安全·自动化
郑洁文4 小时前
可视化Web渗透分析工具的设计与实现
前端
罗超驿4 小时前
18.Web API 实战:元素与表单属性的获取和修改
开发语言·前端·javascript
边界条件╝4 小时前
微前端进阶(四)
前端·状态模式
无风听海4 小时前
JSON Web Token(JWT)完全指南
java·前端·json
IT_陈寒5 小时前
Python闭包里藏的这个坑,差点让我加班到凌晨
前端·人工智能·后端