react-redux 中的 dispatch 函数和 reducer 函数之后会发生什么?

what happens after dispatch function and reducer function in react-redux?

假设如果我使用 dispatch() 发送一个动作,我知道 reducer() 被调用了 an action object and current state as parameters 。我想知道什么叫 reducer 函数?在 reducer 函数之前和 dispatch 函数之后调用了哪些函数?在 reducer 函数 returns 新状态之后,之后调用了哪些函数?这个新状态去哪里了? usestate()useselector() 也 returns 在 reducer 函数 returns 新状态之后有什么东西吗?

i want to know what calls that reducer function ? which functions are called before reducer function and after dispatch function

dispatch() 实际上 'call' 每个减速器。它使用了一个事件系统,所有的 reducer 都在监听这个事件(这一切都在幕后)。

不过,您可以编写一段代码,将其插入到调度调用和 reducer 捕获操作之间。

它被称为中间件。

中间件可以拦截调度触发的任何动作,它也可以访问存储。

在中间件的末尾,您只需使用回调来告诉流程继续。 您需要将您的操作传递给它,以便您的减速器最终可以被调用并接收操作。

这是一个中间件示例,它记录了任何 dispatch() 发送的任何操作

const logger = store => next => action => {
  console.log('dispatching', action)
  let result = next(action)
  console.log('next state', store.getState())
  return result
}

为了让它工作,你需要将你的中间件传递给你的 redux 配置,这样它们就可以被调用。

after reducer function returns the new state ,which functions are called after that, where does this new state goes ?

如果你查看你的 redux 配置,你会在某个地方看到你组合了所有的 reducer(通常称为 root reducer)。

const combinedReducers = combineReducers({ reducerA, reducerB })
const store = createStore(combinedReducers )

Redux 使用这种 reducer 组合来填充 store,所以任何时候 reducer return 的结果都可以保存在 'the store'

does usestate() and useselector() also returns something after reducer function returns new state ?

useSelector()是一个hooks,在store中有读取的能力。 (包含你的 reducer 的最新结果的商店,每次商店有修改时都会更新)

useState() 与 redux 无关。它与 React 有关。使用 useState 你可以在组件的本地状态下读写。

它 return 是你的状态,setter 是这个状态。

const {myPieceOfState, setMyPieceOfState} = useState({ something :'a default value for myPieceOfState'})