当前位置: 首页 > ops >正文

React Hooks 精要:从入门到精通的进阶之路

Hooks 是 React 16.8 引入的革命性特性,它让函数组件拥有了类组件的能力。以下是 React Hooks 的详细使用指南。

一、基础 Hooks

1. useState - 状态管理

import { useState } from 'react';function Counter() {const [count, setCount] = useState(0); // 初始值为0return (<div><p>You clicked {count} times</p><button onClick={() => setCount(count + 1)}>Click me</button>{/* 使用函数式更新 */}<button onClick={() => setCount(prev => prev + 1)}>Safe Increment</button></div>);
}

特点:

  • 可以多次调用声明多个状态变量
  • 状态更新会触发组件重新渲染
  • 函数式更新确保获取最新状态

2. useEffect - 副作用处理

import { useState, useEffect } from 'react';function Example() {const [data, setData] = useState(null);// 相当于 componentDidMount 和 componentDidUpdateuseEffect(() => {fetch('/api/data').then(res => res.json()).then(setData);}, []); // 空数组表示只在组件挂载时执行// 监听特定状态变化useEffect(() => {document.title = `Count: ${count}`;}, [count]); // count变化时执行// 清理函数 (相当于 componentWillUnmount)useEffect(() => {const timer = setInterval(() => {console.log('Timer running');}, 1000);return () => clearInterval(timer);}, []);
}

执行时机:

  • 默认在每次渲染后执行
  • 可以通过依赖数组控制执行条件
  • 清理函数在下一次effect执行前运行

3. useContext - 跨组件传值

http://www.xdnf.cn/news/5137.html

相关文章:

  • 单片机-STM32部分:10-2、逻辑分析仪
  • 【软件工程】基于频谱的缺陷定位
  • openlayers利用已知的三个经纬度的坐标点 , 绘制一个贝塞尔曲线
  • LeetCode 39 LeetCode 40 组合总和问题详解:回溯算法与剪枝优化(Java实现)
  • 鸿蒙 所有API缩略图鉴
  • PyTorch API 10 - benchmark、data、批处理、命名张量
  • 如何创建伪服务器,伪接口
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月10日第73弹
  • linux搭建hadoop学习
  • 测试左移系列-产品经理实战-实战认知1
  • 简易图片编辑工具,支持抠图和替换背景
  • 如何启动vue项目及vue语法组件化不同标签应对的作用说明
  • 使用互斥锁保护临界
  • “AI+城市治理”智能化解决方案
  • 前端面试每日三题 - Day 30
  • VScode密钥(公钥,私钥)实现免密登录【很细,很全,附带一些没免密登录成功的一些解决方法】
  • [Linux]多线程(二)原生线程库---pthread库的使用
  • 学习黑客5 分钟深入浅出理解Linux Common Directories
  • Spark MLlib网页长青
  • Python-函数
  • Git Github Tutorial
  • STL-list
  • 【生存技能】ubuntu 24.04 如何pip install
  • OSCP - Proving Grounds - EvilBox-One
  • 软考中级数据库备考-上午篇
  • 使用FastAPI和React以及MongoDB构建全栈Web应用01 概述
  • 养生:开启健康生活的密钥
  • 使用定时器监视当前PID 如果当前程序关闭 UI_Core.exe 也随之自动关闭实现方法
  • 用纯HTML和CSS仿写知乎登录页面
  • Python中的事件循环是什么?事件是怎么个事件?循环是怎么个循环