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

相关推荐
excel17 小时前
ES6 中函数的双重调用方式:fn() 与 fn\...``
前端
可乐爱宅着17 小时前
全栈框架next.js入手指南
前端·next.js
你的人类朋友18 小时前
什么是API签名?
前端·后端·安全
会豪20 小时前
Electron-Vite (一)快速构建桌面应用
前端
中微子21 小时前
React 执行阶段与渲染机制详解(基于 React 18+ 官方文档)
前端
唐某人丶21 小时前
教你如何用 JS 实现 Agent 系统(2)—— 开发 ReAct 版本的“深度搜索”
前端·人工智能·aigc
中微子21 小时前
深入剖析 useState产生的 setState的完整执行流程
前端
遂心_21 小时前
JavaScript 函数参数传递机制:一道经典面试题解析
前端·javascript
小徐_233321 小时前
uni-app vue3 也能使用 Echarts?Wot Starter 是这样做的!
前端·uni-app·echarts
RoyLin21 小时前
TypeScript设计模式:适配器模式
前端·后端·node.js