【问题标题】:Redux toolkit separate files for actions?Redux 工具包单独的操作文件?
【发布时间】:2020-09-17 14:45:01
【问题描述】:

我最近发现了 redux 工具包,并且对如何使用它处理 action 和 reducer 分离有一些疑问。在 redux 工具包之前,我有单独的文件夹和文件用于 reducer 和操作,但在 redux 工具包教程的所有示例中,他们将操作/thunk 保存在与其 reducer/slice 相同的文件中。我将需要使用 axios 和 createAsyncThunk(我假设)来访问我的 API。在单独的文件夹/文件中分离动作和减速器仍然是最好的吗?只使用 createAsyncThunk 和 createReducer 而不是 createSlice 会更好吗?在 createSlice 中,我仍然不完全理解 extraReducers 的用途以及它与 reducer 之间的区别。如果对这个库更熟悉的人可以提供帮助,我将不胜感激。

【问题讨论】:

    标签: redux redux-thunk redux-toolkit


    【解决方案1】:

    我最近也开始使用 Redux 工具包,我认为这非常棒,通过处理大量样板文件并遵循以标准化方式组织状态的最佳实践,确实加快了 react/redux 开发。您可以使用npx create-react-app my-app --template redux 轻松启动并运行它

    要回答您的问题,您无需将 reducer 和操作分开,它们现在可以放在同一个文件中。

    我一直在使用 createSlice 来制作我的 reducer,createAsyncThunk 来调用 API,并使用 createEntityAdapter 来创建所有选择器(取决于我已经开始使用 normalizr 的标准化状态)

    对我帮助最大的事情是一步一步仔细地遵循中级教程Intermediate Tutorial。这里将一个典型的 react-redux 应用程序转换为 Redux Toolkit 样式,您将看到原始样式的 reducer、动作等,以及它们如何转换为使用新的 API / 样式。最后在清理部分clean up section

    我们现在有一堆不再存在的 action 和 reducer 文件 正在使用,所以我们应该删除那些清理项目。 […………] 我们还可以尝试通过将所有组件文件移动到匹配的功能文件夹中来完全从“按类型文件夹”结构切换到“功能文件夹”结构。

    【讨论】:

    • 是的,自从我发布了这个,我发现了 redux 模板并开始使用 typescript(我一直很喜欢)所以高级教程(和 CRA 的 redux typescript 模板)有很大帮助接着就,随即。我认为我现在最大的问题是决定如何分离常见的操作和 api 调用(将用于多个功能),但仍然保持基于功能的文件结构。我一直在尝试使用高级教程中的 api 文件夹,但我不确定我对此有何感受。
    猜你喜欢
    • 2020-07-30
    • 2021-03-14
    • 2021-11-30
    • 2022-12-11
    • 1970-01-01
    • 2021-01-12
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多