当前位置:首页 > React

react如何规划项目目录

2026-02-12 09:42:16React

规划 React 项目目录结构

React 项目的目录结构可以根据项目规模和团队需求灵活调整,以下是一些常见的目录规划方案:

按功能划分

src/
├── components/        # 通用组件(按钮、输入框等)
├── features/         # 业务功能模块(每个功能独立文件夹)
│   ├── auth/         # 认证相关
│   ├── dashboard/    # 仪表板相关
├── pages/            # 页面级组件
├── hooks/            # 自定义 hooks
├── utils/            # 工具函数
├── services/         # API 请求层
├── store/            # 状态管理(Redux/Zustand)
├── styles/           # 全局样式
├── assets/           # 静态资源
└── App.js            # 主入口

按文件类型划分

src/
├── components/
├── containers/
├── redux/
├── api/
├── styles/
└── routes/

关键目录说明

components/

  • 存放可复用的 UI 组件
  • 可按原子设计理论细分:
    • atoms/ 基础元素(按钮、图标)
    • molecules/ 简单组合(搜索框)
    • organisms/ 复杂组件(导航栏)

features/

  • 业务功能模块采用 feature-based 结构
  • 每个功能包含自己的组件、hooks 和逻辑
  • 示例:
    features/
      ├── user/
      │   ├── UserList.js
      │   ├── useUsers.js
      │   └── userSlice.js
      └── products/
          ├── ProductCard.js
          └── api/

services/

  • 集中管理 API 请求
  • 建议按资源分类:
    services/
      ├── authService.js
      ├── userService.js
      └── productService.js

进阶建议

类型安全项目

  • 添加 types/ 目录存放 TypeScript 类型定义
  • 或使用 *.d.ts 文件与对应模块共存

测试文件

  • __tests__/ 目录与对应模块平级
  • 或使用 Component.test.js 命名约定

配置分离

  • 环境变量放入 config/ 目录
  • 区分 config/dev.js, config/prod.js

路由组织方案

基础路由

react如何规划项目目录

routes/
├── publicRoutes.js   # 公开路由
└── privateRoutes.js  # 需要鉴权的路由

动态加载

pages/
├── Home/
│   ├── index.js
│   └── Home.module.css
└── About/
    └── index.js

样式管理方案

CSS Modules

  • 每个组件附带自己的 .module.css 文件
  • 避免全局样式冲突

Styled Components

  • 样式组件与逻辑组件共存
  • 或集中放在 styles/ 目录

状态管理方案

Redux Toolkit

store/
├── slices/         # Redux slices
├── actions/        # 传统 action creators
└── store.js        # Store 配置

Context API

react如何规划项目目录

  • 每个 context 在 contexts/ 目录独立管理
  • 包含 Provider 和自定义 hook

构建工具适配

Vite 项目

  • 静态资源建议放在 public/
  • 插件配置可放入 config/vite/

Next.js 项目

  • 遵循 pages/ 和 app/ 路由约定
  • API 路由放入 pages/api/app/api/

项目模板参考

社区流行结构

  • bulletproof-react(防御式编程结构)
  • feature-sliced(功能切片架构)
  • atomic-design(原子设计模式)

企业级推荐

src/
├── core/           # 框架扩展/基础配置
├── modules/        # 业务模块
├── shared/         # 跨模块共享代码
└── app/            # 应用入口层

选择目录结构时需考虑:

  1. 项目复杂度
  2. 团队协作需求
  3. 长期维护成本
  4. 框架特性(如 Next.js 的特殊要求)

标签: 目录项目
分享给朋友:

相关文章

vue实现项目依赖

vue实现项目依赖

Vue 项目依赖的实现方法 使用 npm 或 yarn 安装依赖 通过 npm 或 yarn 安装项目所需的依赖包。在项目根目录下运行以下命令安装 Vue 及相关库: npm install vue…

uniapp项目教程

uniapp项目教程

uniapp项目教程 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(包括 iOS、Android、H5、小程序等)。以下是详细的教程指南,帮助快速上手 uniapp…

uniapp项目简历

uniapp项目简历

uniapp项目简历的构建方法 项目经验展示 在简历中单独列出uniapp开发经验,描述项目名称、开发周期、技术栈(如Vue.js、uni-ui等)。突出跨平台特性(iOS/Android/Web多端…

uniapp前端项目

uniapp前端项目

Uniapp 前端项目开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App 等)。以下是关于 Uniapp 前端项目的关键信息:…

uniapp项目实战

uniapp项目实战

创建UniApp项目 通过HBuilderX新建项目,选择UniApp模板,填写项目名称和存储路径。根据需求选择默认模板或自定义配置,如Vue3版本支持。 配置基础环境 在manifest.j…

uniapp 目录

uniapp 目录

uniapp 目录结构 uniapp 的目录结构遵循 Vue.js 项目的规范,同时包含一些特有的文件和目录。以下是典型的 uniapp 项目目录结构及其说明: project-name/ ├──…