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

相关推荐
gaozhiyong08139 小时前
深度技术拆解:豆包2 Pro vs Gemini 3—国产工程派与海外原生派的巅峰对决
前端·spring boot·mysql
JosieBook9 小时前
【C#】C# 访问修饰符与类修饰符总结大全
前端·javascript·c#
遨游建站9 小时前
谷歌SEO之网站内部优化策略
前端·搜索引擎
华洛9 小时前
聊聊我逃离前端开发前的思考
前端·javascript·vue.js
梦梦代码精9 小时前
开源即商用,预期产出、风险与优化建议
人工智能·gitee·前端框架·开源·github
小码哥_常9 小时前
解锁Android权限申请新姿势:与前置说明弹窗共舞
前端
早點睡3909 小时前
ReactNative项目OpenHarmony三方库集成实战:react-native-gifted-charts
javascript·react native·react.js
紫_龙9 小时前
最新版vue3+TypeScript开发入门到实战教程之路由详解三
前端·javascript·typescript
-SOLO-9 小时前
使用Cursor操控正在打开的Chrome
前端·chrome
chiwei_hua9 小时前
如何在 Blazor Web 前端中使用 C# 进行数据交互?
前端·c#·交互