一、useState和useReducer都是用来管理state的,useReducer更多的时候与useContext搭配起来用。
useState: 原来的类组件只支持一个setState方法,useState把各个状态独立分开管理,提供了更细的粒颗度模块化管理。
useReducer: 是阉割版的 redux,只缺省一个状态的共享能力,与useContext 搭配刚刚好。useReducer适合局部数据流。
其实useState是useReducer的一个子集,useState 返回的函数内部封装了一个 dispatch。
二、useReducer( 单个组件中用的少,太重了)
官方的定义:在某些场景下,useReducer
会比 useState
更适用,例如 state 逻辑较复杂且包含多个子值(注意且字),或者下一个 state 依赖于之前的 state 等。并且,使用 useReducer
还能给那些会触发深更新的组件做性能优化,因为你可以向子组件传递 dispatch
而不是回调函数 。