我应该在 React-Redux 项目的组件文件夹级别使用 actionCreators 吗?

莱普斯

我在我的 React 项目中使用了 redux。我已经像那张图片一样拆分了我的文件夹:我商店的文件夹结构

但是我的文件夹ActionCreators 文件在我开发项目时增长了很多。这是文件的结尾,我知道它很糟糕。所以我决定将我在 folderActionCreator 中的功能拆分为文件夹和文件。但我无法决定我该怎么做?

我对这个问题提出了一个想法,但我不确定那是正确的方法。

我想将 folderActionCreators 中的每个函数都分离到每个需要的组件的组件级别。例如:

我有一个名为FolderItem 的组件,这个组件位于 FolderItem 文件夹内。这是例子

我想在 FolderItem 内创建另一个文件夹,名称为actionCreators并将动作创建器功能移到此处,FolderItem需要。在这种情况下,FolderItem组件使用六个动作创建器,您可以在此处查看功能,我想将它们全部移动到FolderItem文件夹中并从那里导入它们。

所以我的问题是,这是一种不好的做法吗?如果是这样,我应该如何组织我的 actionCreators?

弗里

官方建议(可能适合您也可能不适合您)是将属于一个“功能切片”文件的减速器、选择器和动作创建器放在该功能的组件文件旁边的“功能文件夹”中:Redux 样式指南: 使用单文件逻辑将文件结构化为特征文件夹

显然,有时您的操作可能并不真正只属于一个减速器或功能 - 您可以将那些具有“最”属于它们的功能的操作放置,或者根据需要将它们分开。

有关该文件结构的示例,您还可以通过调用npx create-react-app my-app --template redux查看官方 Redux“Create React App”模板提供的文件结构npx create-react-app my-app --template redux-typescript

此外,这种方法与官方 redux 工具包提供createSlice功能很相配,该功能(其中包括消除手动编写不可变更新的需要)会自动为您声明的“case reducers”创建动作创建器。

一般来说,我强烈建议您研究现代Redux,也许可以阅读官方Redux“essentials”教程,该教程展示了如何在实践中使用现代 Redux。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我应该在React组件或Redux动作中获取数据吗?

我应该在各处使用React.PureComponent吗?

我应该在初始渲染期间使用redux dispatch吗?

我应该在我的组件上定义标准的React PropTypes吗?

我应该在输入字段中使用受控的React组件吗(出于安全考虑)?

为什么我不应该在React Redux中使用toJS()?(mapStateToProps)

我应该在React JS中使用自定义事件委托吗

我应该在React中使用属性(除了props或state之外)吗?

我们应该在 React Native 中使用类变量吗?

我应该在 React 16 的 componentDidUpdate 中使用 setState 条件更新吗?

我应该在redux中存储静态配置吗?

我应该在React上更新列表吗?

我应该在React组件中初始化一个空状态变量吗?

我们应该在React Functional Components中的每个函数处理程序中使用useCallback吗

我应该在Go中关闭日志文件吗?

我应该在移动文件之前关闭它吗?

我应该在try / except之后使用final吗?

我应该在Laravel中使用belongsTo或hasOne吗?

我应该在ECS中使用静态类吗?

我应该在Couchbase中使用本地索引吗?

我应该在Promise中使用return吗?

我应该在Java中使用Qt Jambi吗?

我应该在“ addClass”之前使用“ hasClass”吗?

我应该在 Kotlin 的界面中使用属性吗?

我应该在调度块中使用“ weakSelf”吗?

我应该在嵌套块中使用weakSelf吗?

Laravel:我应该在循环内使用@include吗?

我应该在main(){}中使用#include语句吗?

我应该在钩子中使用useMemo吗?