react 中都有哪些hook?作用

React 中有以下几种常用的 Hook:

1. useState:用于在函数组件中添加状态。它返回一个包含当前状态和一个更新状态的函数的对象。

2. useEffect:用于在函数组件中执行副作用操作,如数据获取、订阅等。它可以在组件挂载和卸载时执行。

3. useContext:用于在组件之间共享状态。它接收一个上下文对象,并返回一个包含当前上下文值的函数。

4. useReducer:用于在函数组件中管理复杂的状态逻辑。它接收一个 reducer 函数和一个初始状态,并返回一个包含当前状态和一个 dispatch 函数的对象。

5. useRef:用于在函数组件中创建对 DOM 节点或 React 元素的引用。它返回一个可变的 ref 对象,该对象可以存储任何值。

6. useCallback:用于在函数组件中缓存回调函数。它接收一个回调函数和一个依赖项数组,并返回一个 memoized 版本的回调函数。

7. useMemo:用于在函数组件中缓存昂贵的计算结果。它接收一个计算函数和一个依赖项数组,并返回一个 memoized 版本的计算结果。

8. useLayoutEffect:与 useEffect 类似,但它在浏览器的 paint 阶段之前执行,适用于需要同步更新 DOM 的情况。

9. useImperativeHandle:用于自定义 forwardRef 组件的实例值。它接收一个回调函数和一个依赖项数组,用于更新实例值。

10. useDebugValue:用于设置 React 开发者工具中的显示名称,以便于调试。它接收一个显示名称和一个格式化函数,并返回一个可用于调试的对象。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React HookReact 16.8 版本引入的一个新特性。Hook 可以让你在不编写 class 组件的情况下使用 state 和其他 React 特性。 以下是 React 常见的 Hook 及其作用: 1. useState:用于在函数组件使用 state。它返回一个数组,第一个值是当前 state 的值,第二个值是更新 state 的函数。例如: ``` import React, { useState } from 'react'; function Example() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}> Click me </button> </div> ); } ``` 2. useEffect:用于在函数组件执行副作用操作,例如访问 DOM、网络请求等。它在组件每次渲染时都会执行。例如: ``` import React, { useState, useEffect } from 'react'; function Example() { const [count, setCount] = useState(0); useEffect(() => { // Update the document title using the browser API document.title = `You clicked ${count} times`; }); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}> Click me </button> </div> ); } ``` 3. useContext:用于在函数组件访问 React 上下文(Context)的值。例如: ``` import React, { useContext } from 'react'; import { ThemeContext } from './theme-context'; function Example() { const theme = useContext(ThemeContext); return ( <div style={{ background: theme.background, color: theme.foreground }}> <p>This is a themed paragraph.</p> </div> ); } ``` 4. useRef:用于在函数组件保存可变值,类似于 class 组件的实例属性。例如: ``` import React, { useRef } from 'react'; function Example() { const inputRef = useRef(null); function handleClick() { inputRef.current.focus(); } return ( <div> <input ref={inputRef} type="text" /> <button onClick={handleClick}>Focus input</button> </div> ); } ``` 除了上述 HookReact 还提供了其他一些 Hook,例如 useReducer、useCallback、useMemo 等,它们都有不同的作用。了解并掌握这些 Hook 可以使你更加高效地编写 React 应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值