Redux应用程序结构 - 在何处放置服务/业务逻辑?

时间:2016-05-17 14:21:22

标签: javascript redux directory-structure

我正在编写我的第一个Redux应用程序并进行初始轮次,例如选择样板并了解其结构。我发现了一个名为react-redux-starter-kit的非常好的。

我需要编写一个通知客户端,由API提供(每隔X分钟就会向API查询通知 - 稍后可能会被websocket解决方案替换)。它不具有路径特定的可见性 - 它总是会在标题栏中看到。考虑到上面的入门套件,哪里放置其代码库最好?我来自Symfony2世界,我将业务逻辑放在一个名为Notification的类中src/services文件夹中:

.
├── src
|  ├── components/Notification - UI
|  ├── ...
|  ├── services/Notification - Business logic - there is no services folder in the starter kit, so I'm not sure about this ..
|  ├── ...

我需要动作,商店和减少通知的东西,但真的不确定在哪里放置它们。 任何的想法?感谢。

更新 基于src/routes/<name of route component>/modules模式,我想最好将应用程序范围的逻辑放入src/modules/Notification文件中。此外,如果代码库太胖了,它可能被分成Actions Reducers下的文件,如src/modules/Notification {...}}。

.
├── src
|  ├── components/Notification - UI
|  ├── ...
|  ├── modules
|  |  ├── Notification - Business logic
|  |  |  ├── actions.js
|  |  |  ├── reducers.js
|  |  |  ├── ...
|  ├── ...

更新:我发现了一个非常好的article关于构建我们的React Redux应用程序。它引导读者了解不同的方法和困境,然后给出并回答。

2 个答案:

答案 0 :(得分:2)

首先:样板/入门套件可以有用,但根据评论,也令人困惑。 davezuko套件非常好,虽然它随着时间的推移肯定会变得更加复杂。如果有帮助,我的list of some suggested starter kits中有一个React/Redux links list。我特别推荐tsaiDavid/simple-redux-boilerplatecesarandreu/web-app作为更简单的工具包,并提供了很好的文档。

第二:需要能够执行API调用等操作的持久逻辑通常会进入Redux中间件或连接的React组件。我的Redux addons catalog有一个socket and service adapter middlewares列表,其中一些可能对您有用,或作为示例。

最后,您可能还想阅读handling "business logic" in Redux上的Redux常见问题解答问题。

答案 1 :(得分:0)

至于应用结构,我建议您关注this guide

它很好地解释了使用component / container / actions / ...文件夹来构建应用程序的问题。

对于入门套件,我使用react-slingshot的修改版本,它为您做了很多繁重的工作。正如评论中所说,您有责任了解它是如何工作的,以便能够在需要时进行调试。