欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > React:什么是Hook?通俗易懂的讲讲

React:什么是Hook?通俗易懂的讲讲

2025/4/25 12:43:45 来源:https://blog.csdn.net/weixin_45705239/article/details/147476824  浏览:    关键词:React:什么是Hook?通俗易懂的讲讲

什么是Hook

  • 1.Hook 是什么?
  • 2.React 内置的 Hook
  • 3. 自定义 Hook
  • 4. 总结

1.Hook 是什么?

可以理解为:函数组件的工具/功能插件
Hook是 React 16.8 以后提供的一种新特性,
让你在函数组件里“钩入”React 的功能(比如状态管理、生命周期等)
不用再写 class 组件了。

2.React 内置的 Hook

React 提供了一些内置的 Hook,最常用的有:

  • useState:给函数组件加上“状态”功能(比如计数器里的数字)。

  • useEffect:用来写副作用,比如请求数据、订阅事件、手动操作 DOM 等。

  • useRef:创建一个可以保存数据的“盒子”,组件刷新时内容不会丢失。

  • useContext 就像一个“共享插件”,它可以让你的组件轻松地访问其他组件共享的数据。在组件树中方便地传递数据。

例子:计数器

import React, { useState } from 'react';function Counter() {const [count, setCount] = useState(0); // 用 useState 声明状态return (<div><p>当前值:{count}</p><button onClick={() => setCount(count + 1)}>加一</button></div>);
}

3. 自定义 Hook

自定义 Hook其实就是自己写的函数工具
这个函数里可以用别的 hook,
用来复用一套逻辑

命名习惯: 必须以use开头,比如 useFetchDatauseMousePosition

例子:自定义获取窗口宽度的 Hook

import { useState, useEffect } from 'react';function useWindowWidth() {const [width, setWidth] = useState(window.innerWidth);useEffect(() => {const onResize = () => setWidth(window.innerWidth);window.addEventListener('resize', onResize);return () => window.removeEventListener('resize', onResize);}, []);return width;
}// 用法
function Demo() {const width = useWindowWidth();return <div>窗口宽度:{width}</div>;
}

4. 总结

  • Hook 就是让你在函数组件里“钩入”React功能的函数。
  • 内置 Hook 是 React 官方提供的(如 useState、useEffect)。
  • 自定义 Hook 是你自己写的、用来复用逻辑的小函数(必须以 use 开头)。

一句话
Hook = 让函数组件变得更有能力的小工具函数(插件),可以用来管理状态、生命周期、逻辑复用等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com