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、其他函数中调用函数。

相关推荐
kevinten101 分钟前
折腾三个月,我把摩旅路线和 AI 搞在一起了
前端
偷光2 分钟前
大模型核心技术概述:Token、Prompt、Tool与Agent的关系详解
前端·ai·prompt·ai编程
鹏程十八少4 分钟前
8. Android 深入插件化Shadow源码:揭秘插件Activity启动的完整链路(源码解析)
java·前端·面试
wuhen_n5 分钟前
Function Calling解剖:从请求到响应的完整数据流
前端·人工智能·ai编程
喝咖啡的女孩7 分钟前
多智能体任务可视化界面
前端
whisper7 分钟前
#新手必看!Map.size 和 Object.keys().length 的区别,看完再也不混淆
前端
秋天的一阵风11 分钟前
【LeetCode 刷题系列|第 3 篇】详解大数相加:从模拟竖式到简洁写法的优化之路🔢
前端·算法·面试
假面骑士阿猫12 分钟前
TRAE配置OpenSpec实现SDD规范驱动开发
前端·人工智能·代码规范
哈哈哈哈哈哈哈哈85315 分钟前
WSL + Tailscale 导致 apt update 卡 0% 的解决方案
前端
JYeontu16 分钟前
程序员都是这样剪视频的?
前端