React Hooks是React 16.8引入的函数,使函数组件支持状态(useState)和副作用(useEffect);useState用于声明和更新状态变量,可多次调用管理多个独立状态;useEffect用于处理数据获取、订阅等副作用,依赖数组控制执行时机,并支持清理函数。
React Hooks 是 React 16.8 引入的一组函数,让函数组件也能使用状态(state)和副作用(side effects),不用写 class 组件。
useState:管理组件的本地状态
它让你在函数组件里声明一个状态变量,并提供更新它的函数。
基本用法是解构出状态值和设置器函数:
const [count, setCount] = useState(0);
这里
count
是当前状态值,
setCount
是修改它的函数,初始值是 0。
立即学习
“
Java免费学习笔记(深入)
”;
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
每次调用
setCount
(比如
setCount(count + 1)
),组件会重新渲染,且
count
取得新值
可以多次调用
useState
管理多个独立状态,比如同时有
name
和
age
初始值可以是任意类型(数字、字符串、对象、数组),甚至可以是函数(用于惰性初始化):
useState(() => computeInitialValue())
useEffect:处理副作用(如数据获取、订阅、手动 DOM 操作)
它替代了 class 组件中的
componentDidMount
、
componentDidUpdate
和
componentWillUnmount
的组合逻辑。
基本结构:
useEffect(() => {// 副作用逻辑,比如 fetch 数据或添加事件监听return () => {// 清理函数(可选),类似 componentWillUnmount};}, [依赖数组]);
不传第二个参数:每次渲染后都执行(含首次)——慎用,容易导致无限循环或性能问题
传空数组
[]
:只在组件挂载和卸载时执行(类似 componentDidMount + componentWillUnmount)
传非空数组(如
[count]
):仅当数组中某个值变化时才重新执行
清理函数会在下次 effect 运行前或组件卸载时执行,用来清除定时器、取消请求、移除监听等
一个小例子:计数器 + 页面标题同步
把 count 显示在界面上,同时让 document.title 随之更新:
function Counter() {const [count, setCount] = useState(0);useEffect(() => {document.title = `你点击了 ${count} 次`; // 副作用}, [count]); // 仅当 count 改变时更新 titlereturn ();}
基本上就这些。Hooks 让逻辑更聚焦、复用更容易,但要注意依赖数组别漏写、别写错,否则容易出 bug。
当前计数:{count}
