用来统一管理状态!!!一般和
useContext()
配合使用!!
const [state , dispatch] = useReducer( reducer , intialState )
该 hook ,
接收两个参数
,reducer处理函数 和原始 state 对象 。返回一个数组
,也包含两个值:更新处理后返回的新对象 和dispatch()派发action的方法
const [state , dispatch] = useReducer( reducer , intialState )
、声明 reducer action处理函数、声明初始状态,可以抽离出到一个单独的js文件中实现
!!
注意:
-
声明
reducer() 处理函数时
,不要直接修改老状态,而是要把老状态复制一份,然后修改,然后返回新状态对象!! -
通过
useContext()
,把新的 state 和 diapath() (派发action方法) 传给各个需要通信的子组件!!
- 在子组件中需要使用数据的地方,直接使用
state
,需要修改数据的地方,直接派发 dispatch()
修改!!