Redux
action(动作):描述要干的事
{ type: 'increment', payload: 10 } // +10
{ type: 'decrement', payload: 10 } // -10
reducer(函数):更新状态
reducer 它是一个纯函数。接收两个参数:action(要干啥),和一个给定的状态计算出一个新的状态。这个新的状态作为 reducer 下次处理数据(接收到action通知)的输入。
store(仓库):配合action和reducer
// 导入redux
import { createStore } from 'redux'
// 创建 store, 参数为:reducer 函数(需要一个干活的)
const store = createStore(reducer)
// 直接分发一个action
store.dispatch( {type: 'increment', payload: 2} )
// 调用action creator 返回一个action
store.dispatch( increment(2) )
// 获取状态(干完活,取成果)
const state = store.getState()
React-Redux
将Redux中管理的数据注入到React组件中
1. 安装 react-redux:`npm i react-redux`
2. 从 react-redux 中导入 Provider 组件
3. 创建 store 实例
4. 使用 Provider 包裹整个应用
5. 通过Provider 的 store 属性,将创建好的store实例注入的组件中
获取状态-useSelector
导入 useSelector
import { useSelector } from 'react-redux'
useSelector(state => state)
const count = useSelector(state => state)
分发动作useDispatch
导入 useDispatch
import { useDispatch } from 'react-redux'
调用 useDispatch 获得 dispatch 函数
const dispatch = useDispatch()
调用 dispatch 分发 action
dispatch( action )