React useState和useReducer不同的应用场景思考

一、useState和useReducer都是用来管理state的,useReducer更多的时候与useContext搭配起来用。

   useState: 原来的类组件只支持一个setState方法,useState把各个状态独立分开管理,提供了更细的粒颗度模块化管理。

   useReducer: 是阉割版的 redux,只缺省一个状态的共享能力,与useContext 搭配刚刚好。useReducer适合局部数据流。

其实useState是useReducer的一个子集,useState 返回的函数内部封装了一个 dispatch。

二、useReducer( 单个组件中用的少,太重了)

   官方的定义:在某些场景下,useReducer 会比 useState 更适用,例如 state 逻辑较复杂且包含多个子值(注意且字),或者下一个 state 依赖于之前的 state 等。并且,使用 useReducer 还能给那些会触发深更新的组件做性能优化,因为你可以向子组件传递 dispatch 而不是回调函数 。

上一篇:React.useEffect() 无限循环怎么解决?


下一篇:react父子组件传值之二,ref传值(父组件调用子组件的值和方法) useRef+useImperativeHandle(hook)