react--常见hook

useState:

  • 用于在函数组件中添加状态。
  • 示例:
import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

useEffect:

  • 用于在函数组件中执行副作用操作,如数据获取、订阅等。
  • 示例:
import React, { useState, useEffect } from 'react';

function ComponentWithEffect() {
  useEffect(() => {
    // 执行一些副作用操作

    return () => {
      // 在组件卸载时清除副作用
      // 例如取消订阅、清除定时器等
    };
  }, []); // 依赖为空数组,表示只在组件挂载时执行一次,依赖项有值,依赖项有变化则触发

  return <p>Component with effect</p>;
}

useMemo:

  • 用于在渲染过程中对计算昂贵的值进行记忆化,以提高性能。
  • 示例:
import React, { useMemo } from 'react';

function MemoizedComponent({ a, b }) {
  const result = useMemo(() => {
    // 执行一些计算
    return a + b;
  }, [a, b]); // 依赖数组,只有当 a 或 b 改变时才重新计算

  return <p>Result: {result}</p>;
}

useRef:

  • 创建一个可变的 ref 对象,用于保存组件中的可变值。
  • 示例:
import React, { useRef } from 'react';

function TextInputWithFocusButton() {
  const inputEl = useRef(null);
  const focusInput = () => {
    inputEl.current.focus();
  };

  return (
    <div>
      <input ref={inputEl} type="text" />
      <button onClick={focusInput}>Focus the input</button>
    </div>
  );
}

useCallback:

  • 用于在组件重新渲染时,缓存回调函数。
  • 示例:
import React, { useState, useCallback } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  const increment = useCallback(() => {
    setCount(prevCount => prevCount + 1);
  }, []);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
}

相关推荐

  1. react--常见hook

    2024-04-02 14:30:02       39 阅读
  2. React常见Hook

    2024-04-02 14:30:02       43 阅读
  3. React-Hooks

    2024-04-02 14:30:02       52 阅读
  4. react hooks

    2024-04-02 14:30:02       62 阅读
  5. react Hooks

    2024-04-02 14:30:02       31 阅读
  6. ReactReact 内置 Hook

    2024-04-02 14:30:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-02 14:30:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-02 14:30:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-02 14:30:02       87 阅读
  4. Python语言-面向对象

    2024-04-02 14:30:02       96 阅读

热门阅读

  1. 25.死锁

    25.死锁

    2024-04-02 14:30:02      44 阅读
  2. Git 实战教程

    2024-04-02 14:30:02       45 阅读
  3. 数据流模型——【数据科学与工程算法基础】

    2024-04-02 14:30:02       39 阅读
  4. CPU狂飙900%,该怎么处理

    2024-04-02 14:30:02       37 阅读
  5. 【OpenCV进阶】图像中添加中文字幕

    2024-04-02 14:30:02       38 阅读
  6. 低代码与系统集成:革新企业应用开发的新动力

    2024-04-02 14:30:02       38 阅读
  7. MYSQL08_页的概述、内部结构、行格式

    2024-04-02 14:30:02       44 阅读
  8. 面试中的MVCC到底是什么意思?

    2024-04-02 14:30:02       45 阅读
  9. Spring与SpringMVC常用注解

    2024-04-02 14:30:02       39 阅读
  10. elasticsearch之多条件查询

    2024-04-02 14:30:02       43 阅读
  11. Redis

    Redis

    2024-04-02 14:30:02      35 阅读
  12. 递归---算法

    2024-04-02 14:30:02       45 阅读
  13. 2024最新华为OD机试试题库全 -【符号运算】- C卷

    2024-04-02 14:30:02       39 阅读