React -- useReducer()

21 阅读1分钟

用来统一管理状态!!!一般和useContext()配合使用!!

const [state , dispatch] = useReducer( reducer , intialState )

该 hook ,接收两个参数reducer处理函数原始 state 对象返回一个数组 ,也包含两个值:更新处理后返回的新对象dispatch()派发action的方法

  • const [state , dispatch] = useReducer( reducer , intialState ) 、声明 reducer action处理函数、声明初始状态,可以抽离出到一个单独的 js文件中实现!!

1882.png

注意:

  • 声明 reducer() 处理函数时,不要直接修改老状态,而是要把老状态复制一份,然后修改,然后返回新状态对象!!

  • 通过 useContext() ,把新的 state 和 diapath() (派发action方法) 传给各个需要通信的子组件!!

1883.png

  • 在子组件中需要使用数据的地方,直接使用state,需要修改数据的地方,直接派发 dispatch()修改!!

1884.png