Skip to content

模块架构

Dux Refine 采用了应用式开发架构,即每个目录都代表一个独立的模块。模块内部的 index.js 文件被用作入口配置,框架会根据入口配置来初始化加载相应的路由、资源、多语言和其他配置。只要 pages 目录下的子目录内有一个 index.{js,ts,jsx,tsx} 文件,就会被视为一个独立的模块。

TIP

这种架构的优点在于模块化和低耦合性,多个模块之间可以轻松地共享或删除,同时模块内部没有特定的目录结构,完全可以根据需要进行自定义。

以下提供了两种目录结构方式,您可以根据喜好选择其中之一:

管理端式结构

将不同的管理端划分为一个模块,每个模块包含了该管理端的功能。这种方式适用于功能相对简单的项目,无需过于复杂的结构。

sh
.
├── pages # 页面文件
   └── admin # admin 管理端
       ├── category # 分类页面
       ├── article # 文章页面
       ├── role # 角色页面
       ├── user # 用户页面
       └── index.tsx # 模块配置
   └── store # store 管理端
       ├── category # 分类页面
       ├── article # 文章页面
       ├── role # 角色页面
       ├── user # 用户页面
       └── index.tsx # 模块配置
.
├── pages # 页面文件
   └── admin # admin 管理端
       ├── category # 分类页面
       ├── article # 文章页面
       ├── role # 角色页面
       ├── user # 用户页面
       └── index.tsx # 模块配置
   └── store # store 管理端
       ├── category # 分类页面
       ├── article # 文章页面
       ├── role # 角色页面
       ├── user # 用户页面
       └── index.tsx # 模块配置

应用式结构

将相关联的功能划分为一个模块,每个模块内再根据不同的管理端进行进一步划分。这种方式适用于功能比较复杂的项目,可以提供清晰的功能分组管理。

sh
.
├── pages # 页面文件
   └── manage # 管理模块
       ├── admin # admin 管理端
          ├── role # 角色
          └── user # 用户
       ├── store # store 管理端
          ├── role # 角色
          └── user # 用户
       └── index.tsx # 模块配置
   └── content # 内容模块
       ├── admin # admin 管理端
          ├── category # 分类页面
          └── article # 文章页面
       ├── store # store 管理端
          ├── category # 分类页面
          └── article # 文章页面
       └── index.tsx # 模块配置
.
├── pages # 页面文件
   └── manage # 管理模块
       ├── admin # admin 管理端
          ├── role # 角色
          └── user # 用户
       ├── store # store 管理端
          ├── role # 角色
          └── user # 用户
       └── index.tsx # 模块配置
   └── content # 内容模块
       ├── admin # admin 管理端
          ├── category # 分类页面
          └── article # 文章页面
       ├── store # store 管理端
          ├── category # 分类页面
          └── article # 文章页面
       └── index.tsx # 模块配置

如果您的项目当前或未来不需要支持多个管理端,我建议您选择单一管理端结构:

sh
.
├── pages # 页面文件
   └── manage # 管理模块
       ├── role # 角色
       └── user # 用户
       └── index.tsx # 模块配置
   └── content # 内容模块
       ├── category # 分类页面
       └── article # 文章页面
       └── index.tsx # 模块配置
.
├── pages # 页面文件
   └── manage # 管理模块
       ├── role # 角色
       └── user # 用户
       └── index.tsx # 模块配置
   └── content # 内容模块
       ├── category # 分类页面
       └── article # 文章页面
       └── index.tsx # 模块配置