当前位置:首页 > 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

路由组织方案

基础路由

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

  • 每个 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/            # 应用入口层

选择目录结构时需考虑:

react如何规划项目目录

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

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

相关文章

uniapp项目教程

uniapp项目教程

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

uniapp 目录

uniapp 目录

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

react项目如何调试

react项目如何调试

使用浏览器开发者工具 React项目调试最直接的方法是使用浏览器内置的开发者工具(Chrome DevTools/Firefox Developer Tools)。打开开发者工具后,切换到“Sourc…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

Vue项目实现rem

Vue项目实现rem

Vue 项目中实现 rem 适配方案 在 Vue 项目中实现 rem 适配,主要目的是让页面元素根据屏幕尺寸自动调整大小。以下是几种常见方法: 使用 postcss-pxtorem 插件 安装 po…

vue实现树状目录

vue实现树状目录

Vue 实现树状目录的方法 在 Vue 中实现树状目录通常需要递归组件和动态数据绑定。以下是几种常见的实现方式。 使用递归组件 递归组件是 Vue 实现树状结构的核心。通过组件调用自身,可以动态渲染…