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

相关推荐
郭邯3 分钟前
手写一个Cron表达式解析器:从需求分析到AI辅助实现
前端
阿黎梨梨4 分钟前
Docker 容器化实战:从零搭建 Web 服务与反向代理
前端·后端·docker
Liora_Yvonne5 分钟前
前端项目为什么需要一个配置单一真相源?
前端
禁止摆烂_才浅5 分钟前
Vite 面试题
前端·面试·vite
GISer_Jing6 分钟前
全栈AI实战:基于 TypeScript + LangChain + MCP 的企业级智能研发助手
前端·后端·ai·langchain·前端框架
禁止摆烂_才浅6 分钟前
微信小程序高频面试题
前端·面试·微信小程序
禁止摆烂_才浅7 分钟前
Vue2 高频面试题
前端·vue.js·面试
禁止摆烂_才浅9 分钟前
前端性能优化面试题
前端·面试·性能优化
ClouGence11 分钟前
文件上传也能录制回放了:CueCast UI 自动化测试更新
前端·测试
禁止摆烂_才浅15 分钟前
Vue3 高频面试题
前端·vue.js·面试