react hooks

react hooks (内置的钩子)

什么是 hooks?

增强了函数组件的功能。

在没有 hooks 时,函数组件是没有状态、生命周期、ref 等。通过 hooks 使函数组件也具有这些能力。

在没有 hooks 时,函数组件是缺少部分功能的,只有 class 类组件才拥有这些功能。因此函数组件性能更优,更符合 React 的设计,所以要尽可能的用函数组件。

useState

用于定义响应式变量,和改变变量的方式,可以在数据更新时更新页面。

只要 state 发生变化,函数组件会重新渲染。而且会递归的渲染子组件,也会重新渲染。

jsx 复制代码
import { useState } from 'react';

function Example() {
    const [count, setCount] = useState(0);
    const increment = () => {
        setCount(count => count+1)
    }
    return <>
        <h1>{count}</h1>
        <button onClick={increment}>
            +
        </button>
        <button onClick={() => {setCount(666)}}>
            set count = 666
        </button>
    </>
}

useMemo

核心是缓存计算值,对于多次重复使用计算值的情况,对应用进行性能优化。

针对那些特别昂贵的计算。

如果依赖数组传入空数组,函数只调用一次。也就是只会计算一次结果,之后的值都来自缓存。

jsx 复制代码
import React, { useMemo } from 'react';
        
function MyComponent({ a, b }) {
  const expensive = useMemo(() => {
    let sum = 0;
    for (let i = 0; i < a; i++) {
      sum += 1;
      console.log(sum);
    }
    return [sum];
  }, [a]);              
  console.log("组件渲染完成!");
  return <h1>{expensive}</h1>;
}       

useEffect

用于处理组件中的副作用(如数据获取、订阅、手动修改 DOM 等)

相关推荐
We་ct4 分钟前
LeetCode 33. 搜索旋转排序数组:O(log n)二分查找
前端·算法·leetcode·typescript·个人开发·二分·数组
华仔啊10 分钟前
前端不懂 Java?后端怕 CSS?这套AI全栈方案专治各种偏科
java·前端·后端
木斯佳12 分钟前
前端八股文面经大全:得物AI应用开发一面(2026-03-23)·面经深度解析【加精】
前端·人工智能·ai·markdown·chat·rag
无巧不成书02182 小时前
Windows PowerShell执行策略详解:从npm报错到完美解决
前端·windows·npm·powershell执行策略·执行策略·npm.ps1·脚本报错
Z兽兽9 小时前
React@18+Vite项目配置env文件
前端·react.js·前端框架
SuniaWang9 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
A_nanda9 小时前
根据AI提示排查vue前端项目
前端·javascript·vue.js
happymaker062610 小时前
web前端学习日记——DAY05(定位、浮动、视频音频播放)
前端·学习·音视频
~无忧花开~10 小时前
React状态管理完全指南
开发语言·前端·javascript·react.js·前端框架
LegendNoTitle10 小时前
计算机三级等级考试 网络技术 选择题考点详细梳理
服务器·前端·经验分享·笔记·php