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

相关推荐
kgduu16 分钟前
js之json处理
前端·javascript·json
@木尘29 分钟前
前端面试【 八股文篇】
前端·面试·职场和发展
吴佳浩35 分钟前
OpenClaw、Claude Code 等 Agent 为什么都选择 Node.js?
前端·人工智能·langchain
小小小小宇39 分钟前
React 19 useActionState 深度解析 & Vue 2.7 移植实战
前端
远山枫谷42 分钟前
Vue2 vs Vue3 全面对比(含代码示例+迁移指南)
前端·vue.js
z止于至善1 小时前
服务器发送事件(SSE):前端实时通信的轻量解决方案
前端·web·服务器通信
小小小小宇1 小时前
React useState 深度源码原理解析
前端
前端小棒槌1 小时前
TypeScript 核心知识点
前端
Selicens1 小时前
turbo迁移vite+(vite-plus)实践
前端·javascript·vite
答案answer1 小时前
我的Three.js3D场景编辑器免费开源啦🎉🎉🎉
前端·github·three.js