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

相关推荐
运维帮手大橙子2 小时前
完整的登陆学生管理系统(配置数据库)
java·前端·数据库·eclipse·intellij-idea
_Kayo_3 小时前
CSS BFC
前端·css
二哈喇子!4 小时前
Vue3 组合式API
前端·javascript·vue.js
二哈喇子!5 小时前
Vue 组件化开发
前端·javascript·vue.js
chxii6 小时前
2.9 插槽
前端·javascript·vue.js
姑苏洛言6 小时前
扫码点餐小程序产品需求分析与功能梳理
前端·javascript·后端
Freedom风间6 小时前
前端必学-完美组件封装原则
前端·javascript·设计模式
江城开朗的豌豆7 小时前
React表单控制秘籍:受控组件这样玩就对了!
前端·javascript·react.js
一枚前端小能手7 小时前
📋 代码片段管理大师 - 5个让你的代码复用率翻倍的管理技巧
前端·javascript
国家不保护废物7 小时前
Web Worker 多线程魔法:告别卡顿,轻松实现图片压缩!😎
前端·javascript·面试