我最近发现了关于redux工具包的问题,并对如何使用它来处理动作和缩减器分离有一些疑问。在使用redux工具包之前,我有单独的文件夹和文件用于化简和操作,但是在redux工具包教程的所有示例中,它们都将其操作/ thunk与化简/切片保存在同一文件中。我将需要使用axios和createAsyncThunk(我假设)来访问我的API。还是最好将动作和减速器分开在单独的文件夹/文件中?仅使用createAsyncThunk和createReducer而不是createSlice会更好吗?在createSlice中,我仍然不完全了解extraReducers的用途以及它与reducer之间的区别。如果对此库更熟悉的人可以提供帮助,我将不胜感激。
答案 0 :(得分:2)
我最近也开始使用Redux工具包,我认为它绝对是太棒了,它通过处理大量样板来真正加快反应/ redux开发,并遵循以规范化方式组织状态的最佳实践。您可以使用npx create-react-app my-app --template redux
要回答您的问题,您无需将reducer和action分开,它们现在可以放在同一文件中。
我一直在使用createSlice来制作我的简化器,createAsyncThunk来调用API,以及createEntityAdapter来创建所有选择器(取决于我已经开始使用normalizr的标准化状态了)
对我最大的帮助是逐步遵循了中级教程Intermediate Tutorial。在这里,典型的react-redux应用程序将转换为Redux Toolkit样式,您将看到原始的样式减少器,操作等,以及如何将其转换为使用新的API /样式。在清理部分clean up section的最后:
我们现在有许多不再使用的动作和减速器文件 被使用,所以我们应该删除那些来清理项目。 [.........] 通过将所有组件文件移动到匹配的功能文件夹中,我们也可以尝试从“按类型的文件夹”结构完全转换为“功能文件夹”结构。