尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

从最简单的Hook开始:react-custom-hooks的useToggle一行代码实现开关状态

从最简单的Hook开始:react-custom-hooks的useToggle一行代码实现开关状态 从最简单的Hook开始react-custom-hooks的useToggle一行代码实现开关状态【免费下载链接】react-custom-hooksReact Custom Hooks S.Leschev: useArray useAsync useClickOutside useCookie useCopyToClipboard useDarkMode useDebounce useDebugInformation useDeepCompareEffect useEffectOnce useEventListener useFetch useGeolocation useHover useLongPress useMediaQuery useOnlineStatus useOnScreen usePrevious useRenderCount useScript etc.项目地址: https://gitcode.com/gh_mirrors/re/react-custom-hooksreact-custom-hooks 是一个收录了 20 多个实用React 自定义 Hook的开源项目其中最适合新手入门的正是useToggle——一行代码即可实现最常用的布尔开关状态true / false 切换。本文将带你读懂它的实现原理、三种用法以及实际应用场景是零基础上手 React Hooks 的快速指南。 为什么 useToggle 是新手的第一课在众多 React 自定义 Hook 中useToggle 被公认为入门第一课原因有三最短完整源码只有 10 行左右新手也能逐行读懂最常用几乎每个项目都需要开/关逻辑弹窗、侧边栏、暗色模式开关最直观返回值就是一个状态值和一个切换函数所见即所得它建立在 React 内置的useState之上帮你省掉重复书写切换逻辑的样板代码。 useToggle 的完整源码10 行读懂 React 自定义 Hook核心实现位于src/hooks/useToggle/useToggle.js完整源码如下import { useState } from react export default function useToggle(defaultValue) { const [value, setValue] useState(defaultValue) function toggleValue(value) { setValue(currentValue typeof value boolean ? value : !currentValue ) } return [value, toggleValue] }拆开来看它只做了三件事用useState初始化一个默认值defaultValue参数提供一个toggleValue函数不传参就取反true 变 falsefalse 变 true传布尔值就直接设定返回一个数组[当前值, 切换函数]与useState的返回风格保持一致这就是 React 自定义 Hook 的标准形态组合内置 Hook封装可复用逻辑遵循use前缀命名。⚡ 一行代码调用 useToggle3 种用法一次看懂只需一行即可完成调用const [value, toggleValue] useToggle(false)随后在组件中就能直接使用项目示例src/hooks/useToggle/ToggleComponent.js演示了三种典型用法// 用法一不传参取反切换true ↔ false button onClick{toggleValue}Toggle/button // 用法二传入 true强制置为开 button onClick{() toggleValue(true)}Make True/button // 用法三传入 false强制置为关 button onClick{() toggleValue(false)}Make False/button 小技巧把onClick{toggleValue}直接绑给按钮时React 会把事件对象作为参数传入。由于事件对象不是布尔值Hook 内部会自动走取反分支——这正是源码中typeof value boolean判断的用意所在无需手写() toggleValue()也能正确切换。 useToggle 适用的常见场景清单掌握这一行代码后以下需求都可以直接覆盖场景开关含义弹窗 / 抽屉是否显示暗色模式切换是否夜间主题项目中的 useDarkMode 即类似思路表单展开/收起是否展开更多字段列表/网格视图是否网格视图用户交互状态是否正在加载、是否选中当多个组件需要共享同一个开关时把这个useToggle调用上移到父组件通过 props 下发即可逻辑依然只写一次。 如何继续学习 react-custom-hooks跑起来看效果克隆仓库后运行npm start项目基于 React 18见package.json在src/App.js中把返回值改为ToggleComponent /即可在浏览器中体验切换对照文档README.md第 26 节集中收录了 useToggle 的源码与用法说明其余 20 个 HookuseArray、useDebounce、useFetch、useStorage 等均按相同格式逐一讲解进阶路径读懂 useToggle 后建议依次挑战useDebounce防抖、usePrevious记录上一个值、useStorage持久化状态难度逐步递进 总结React 自定义 Hook 并不可怕useToggle 用它 10 行源码证明了这一点。从这一行useToggle(false)开始你就迈出了自定义 Hook 的第一步。【免费下载链接】react-custom-hooksReact Custom Hooks S.Leschev: useArray useAsync useClickOutside useCookie useCopyToClipboard useDarkMode useDebounce useDebugInformation useDeepCompareEffect useEffectOnce useEventListener useFetch useGeolocation useHover useLongPress useMediaQuery useOnlineStatus useOnScreen usePrevious useRenderCount useScript etc.项目地址: https://gitcode.com/gh_mirrors/re/react-custom-hooks创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表