• react常用的hooks有哪些?


    React常用的Hooks包括以下几种:

            1.useState:用于在函数组件中创建和管理状态。它返回一个数组,第一个值是当前状态的值,第二个值是更新状态的函数。

    使用时,首先通过解构赋值获取状态值和更新函数,并设置初始状态:

    1. import React, { useState } from 'react';
    2. function Example() {
    3. const [count, setCount] = useState(0);
    4. return (
    5. <div>
    6. <p>点击了 {count} 次p>
    7. <button onClick={() => setCount(count + 1)}>点击增加button>
    8. div>
    9. );
    10. }

    上述例子中,useState创建一个名为count的状态变量,并通过setCount函数来更新count的值。每次点击按钮时,count的值会加1。

            2.useEffect:用于在函数组件中执行副作用操作,例如订阅数据、手动修改DOM等。可以理解为componentDidMount、componentDidUpdate和componentWillUnmount的组合。

    使用时,传入一个回调函数作为第一个参数,该回调函数将在组件渲染后执行:

    1. import React, { useState, useEffect } from 'react';
    2. function Example() {
    3. const [count, setCount] = useState(0);
    4. useEffect(() => {
    5. document.title = `点击了 ${count} 次`;
    6. });
    7. return (
    8. <div>
    9. <p>点击了 {count} 次p>
    10. <button onClick={() => setCount(count + 1)}>点击增加button>
    11. div>
    12. );
    13. }

    上述例子中,每次count发生变化时,通过useEffect更新页面标题。如果不传入第二个参数(依赖数组),则useEffect会在每次组件重新渲染后都执行。

            3.useContext:用于在函数组件中访问和使用Context的值。

    使用时,在函数组件中通过调用useContext并传入对应的Context对象来获取其值:

    1. import React, { useContext } from 'react';
    2. const UserContext = React.createContext();
    3. function Example() {
    4. const user = useContext(UserContext);
    5. return <div>当前登录用户:{user}div>;
    6. }

    上述例子中,通过useContext获取了UserContext中的user值。

            4.useRef:用于在函数组件中创建可持久化的引用,类似于class组件中的ref。

    使用时,通过调用useRef获取一个可变的ref对象,可以将其赋值给DOM元素或其他任意值。

    1. import React, { useRef } from 'react';
    2. function Example() {
    3. const inputRef = useRef(null);
    4. const handleClick = () => {
    5. inputRef.current.focus();
    6. };
    7. return (
    8. <div>
    9. <input ref={inputRef} type="text" />
    10. <button onClick={handleClick}>聚焦输入框button>
    11. div>
    12. );
    13. }

    上述例子中,定义了一个inputRef引用,并将其赋值给输入框的ref属性。点击按钮时,通过inputRef.current.focus()使输入框获得焦点。

    这些Hooks可以根据实际需求灵活使用,帮助我们实现更便捷、高效的函数组件开发。

  • 相关阅读:
    外包干了3个月,技术退步明显。。。。。
    Android Studio(意图Intent)
    C++基础语法(一)
    麒麟系统smb共享输入用户密码无法连接的处理方法
    Ubuntu部署nginx
    【 java 面向对象】类的继承和方法重写
    Java操作Python数据交互最佳实践
    十四、一起学习Lua 元表(Metatable)
    10月11日,每日信息差
    taobao.trade.get( 获取单笔交易的部分信息(性能高),淘宝R2接口,淘宝开发平台oAuth2.0接口
  • 原文地址:https://blog.csdn.net/dxn16638400024/article/details/133894924