Redux Toolkit 和 Redux Saga 可以一起使用吗?

The*_*ack 2 redux redux-saga react-redux redux-toolkit

即使我只在其中创建 Slice 并通过 Redux Saga 解决中间件,使用 Redux Toolkit 是否可以?

或者在这种情况下,最佳实践是使用 Redux Saga + raw Redux 而不使用 Toolkit?

谢谢

Yil*_*maz 5

Redux-saga 只是一个更好地处理异步逻辑的中间件。如果您有大型应用程序,则 redux-saga 优于 redux-thunk。redux-saga 使测试变得更容易。

Redux 和 Redux toolkit 之间的区别是 redux toolkit 需要更少的代码来设置,而 redux-toolkit 使用 immer.js 更容易更新状态。

要将 redux-saga 与 redux-toolkit 集成,您需要编写 sagas,然后将它们组合起来

import { all } from "redux-saga/effects";
import { firstSaga } from "./firstSaga";

export default function* rootSaga() {
  yield all([...firstSaga]);
}
Run Code Online (Sandbox Code Playgroud)

然后在 store.js 中

import { configureStore } from "@reduxjs/toolkit";
import createSagaMiddleware from "redux-saga";
import rootSaga from "./rootSaga";
const sagaMiddleware = createSagaMiddleware();

const store = configureStore({
  reducer: {
    movie: MovieReducer,
  },
  middleware: (getDefaultMiddleware) =>
    // adding the saga middleware here
    getDefaultMiddleware().concat(sagaMiddleware),
});

sagaMiddleware.run(rootSaga);

export default store;
Run Code Online (Sandbox Code Playgroud)