ReactJS Flux 应用程序目录结构

标签 reactjs directory-structure reactjs-flux

我的团队目前正在开发一个大型应用程序,该应用程序是使用 Facebook 的 Flux 架构用 ReactJS 编写的。它现在还处于起步阶段,但很快就会发展壮大。它将拥有 50 多个小型组件 View 、大量操作、商店和操作创建器。

目前,我们的目录结构如下 -

App
|___ module_1
|    |___ components
|    |    |___ component1.react.js
|    |    |___ component2.react.js
|    |___ module1ActionCreators.js
|    |___ module1Constants.js
|    |___ module1store.js
|
|___ module_2
     |___ ... (same structure as above)

此方法的问题之一是,随着此应用程序的增长,module_x 文件夹的数量将变得越来越大。

有人可以分享他们如何构建应用程序吗?根据我们的经验,Facebook 的示例应用程序(待办事项和聊天)具有适合小型应用程序的架构,但一旦这些商店、组件和操作数量增加,管理就会变得更加困难。

提前致谢。

最佳答案

通常的目录结构更像是这样:

js
├── AppBootstrap.js
├── AppConstants.js
├── AppDispatcher.js
├── actions
│   ├── AppActions.js
│   ├── FriendActions.js
│   └── PhotoActions.js
├── components
│   ├── AppRoot.react.js
│   ├── friends
│   │   ├── Friend.react.js
│   │   ├── FriendList.react.js
│   │   └── FriendSection.react.js // a querying-view, AKA controller-view
│   └── photos
│       ├── Photo.react.js
│       ├── PhotoCategoryCard.react.js
│       ├── PhotoCategoryCardTitle.react.js
│       ├── PhotoGrid.react.js
│       └── PhotoSection.react.js // another querying-view
├── stores
│   ├── FriendStore.js
│   ├── PhotoStore.js
│   └── __tests__
│       ├── FriendStore-test.js
│       └── PhotoStore-test.js
└── utils
    ├── AppWebAPIUtils.js
    ├── FooUtils.js
    └── __tests__
        ├── AppWebAPIUtils-test.js
        └── FooUtils-test.js

css 目录通常看起来像组件目录的镜像,每个组件都有一个 css 文件。然而,现在有些人更喜欢在组件上内嵌所有样式。

不要想太多 - 商店和查询 View 或“部分”之间并不总是 1:1,如本例所示。

实际上,您只需要做适合您的应用的事情即可。这不是教条。数据流、控制反转和存储解耦——这些都是比如何组织文件更重要的想法。

关于ReactJS Flux 应用程序目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29945230/

相关文章:

javascript - 大括号内的 JSX

java - 每种编程语言都有单独的 Subversion 分支?

C - 开始一个大项目。文件/目录结构和名称。需要好的例子

reactjs - React - 如何获取更新的数据以显示在我的表格中?

reactjs - 如何在antd中将加载器放入嵌套表中?

javascript - react 调用子方法的不同方式

reactjs - MUI v5 是否提供了他们用于主页的主题或样式示例?

xml - 用于描述目录树的文件属性的 XML 语言?

unit-testing - 如何在每次 Jest 测试运行之前运行一些配置

reactjs - React - 将空行附加到表中