React教程,函数组件状态管理useState/useReducer总结
发布于 作者:苏南大叔 来源:程序如此灵动~

在本文中,苏南大叔对React
中useState()
钩子做个简单的总结,总结的目的主要是引出useState()
存在的问题,为后续文章提出的可能的解决方案,做伏笔铺垫。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。本文测试环境:nodejs@20.18.0
,create-react-app@5.0.1
,react@19.0.0
。useState()
是目前的React
项目中,最最常用的钩子。
前文回顾
在传统类组件中,可以使用state
,参考文章:
在函数组件里面,通过useState()
使用state
的方法。参考文章:
React
官方出品的useReducer()
钩子,对useState()
钩子的一个升级使用方式,参考文章:
useState()简单使用
这里推荐的写法就是:
useState()进阶使用
这里主要是利用...
运算,修改稍微复杂的对象。代码参考:

useState()最经典案例
最经典的useState()
的例子,setInterval()
+useState()
+稍复杂对象。
这个例子就是对上面两个例子的结论肯定。尽量使用setState((state)=>{})
,内部使用...
对状态进行展开。如果不遵守这个规则的话,这个setInterval()
的例子就无法正常运行。
useReducer()改写
这里使用React
官方的useReact()
的升级版useReducer()
方案,再次改写上面的特殊例子。
这个例子的成功运行,表明:因为useReducer
是强制使用state
变量的。所以,遵守规则的前提下(也就是说在reducer
内部使用state
),setInterval()
和useReducer()
是不会产生冲突的。变量是可以正常更新的。

结语
更多react
例子,请参考苏南大叔的博客文章:


