React-从0到1搭建一个React项目(一)

REACT实战项目从0到1搭建(仅供参考) 按照。 阅读详情


利用工作之余的时间学习了react,今年一回来,部门要在公众号上面开发一个积分商城,于是准备让我用react开发。目前已迭代了3个版本,代码量7万行左右。在这里记录分享一下项目的架构。
由于整篇文章比较长,为方便阅读,拆成了几篇文章。本篇是第一篇,主要介绍项目的分层架构和准备工作。
相关文章: React-从0到1搭建一个React项目(二)
Demo地址:
github地址:https://github.com/miguoer/react-sample

架构介绍

项目整体架构分层如下图:
在这里插入图片描述
从上到下分为组件层、容器层、动作层和数据层。组件层全部都是无状态组件,包括每个页面抽象出的组件和公共的无状态组件。容器层负责业务逻辑的处理,网络请求以及和数据层的交互。动作层定义了容器层和数据层交互的方法。数据层利用redux完成组件的状态管理,包括保存、更新。

项目一开始使用的是react-create-app快速搭建脚手架。随着项目演进,出现了多页面(多个单独的html页面)需求。react-create-app目前还不支持多页面,因此当有多需求时,就需要自己控制webpack打包构建。

第三方组件库

介绍一些项目中能通用的第三方组件库。

  • dotenv和dotenv-expand 解决从.env文件中加载环境变量的问题
  • react-document-title 可以实现自定义每个页面标题
  • prop-types 为react 的prop 属性提供类型检查
  • @material-ui/core 一个非常好用的react常用组件库
  • react-router-dom react的路由库
  • react-redux 状态管理库
  • redux-logger 当redux store更新时的日志打印工具,调试非常有用
  • styled-components 解决常规CSS的痛点,将CSS代码写在js文件中,提供了完善的样式解决方案

项目准备

环境准备

使用create-react-app初始化项目

单页面的项目使用create-react-app可以快速构建脚手架。如果后续有多页面需求也可以很方便切换回webpack打包的模式。create-react-app官网。初始化命令为:

npx create-react-app my-app
cd my-app
npm start

创建项目目录结构

根据上面的项目分层结构图,在src目录下分别创建 actions、components、configurestore、container、images、reducers文件夹。actions用来存放容器层和数据层交互的action.js文件,components存放无状态组件或者能够自包含的组件,configurestore里面保存初始化redux store的js,container存放所有容器层的js,images存放图片文件,reducers存放数据层的reducer js文件。
在这里插入图片描述

安装第三方库

下载上面介绍的依赖库到本地,你可以直接复制我的package.json中的依赖,然后在项目根目录执行命令npm install。也可以自行安装最新版本的依赖库。

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@material-ui/core": "^3.9.3",
    "dotenv": "^8.0.0",
    "dotenv-expand": "^5.1.0",
    "prop-types": "^15.7.2",
    "react": "^16.8.6",
    "react-document-title": "^2.0.3",
    "react-dom": "^16.8.6",
    "react-redux": "^7.0.3",
    "react-router-dom": "^5.0.0",
    "react-scripts": "3.0.1",
    "redux": "^4.0.1",
    "redux-devtools-extension": "^2.13.8",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0",
    "styled-components": "^4.2.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

React实战项目从0到1 ps:Last but not least,放几个下载地址,至于安装和使用的详细教程,就劳请各位出门右转,伸出智慧的右手搜一下吧,一定会有详细教程的,啦啦啦。README.md:项目的介绍文件,运用markdown标记语言编写,在github等开源代码网站上,项目常用.md文件来进行介绍。关于React创建项目的宝宝级教程就介绍到这了,React框架的深入学习,还需要我们继续探索,一起加油吧~logo.svg:react的一个标志文件,sug文件是纯粹的XML,保证了在放大缩小时图像不失真。 阅读详情

相关推荐

create-react-app 快速搭建一个react项目(完整结构)

说明 这是facebook团队的一个小项目,可以快速搭建一个react的项目结构,容易上手,非常适合像我这样的初学者。 步骤 node.js环境: 首先你得安装这个,因为后续的npm命令是基于这个的,不赘述。 直接安装: 运行npm install -g create-react-app; 为什么要-g这个我说一下我的情况,因为我在创建my-app的时候,一开始没有全局安装,导致np...

u012805132的博客 5429

React从0到1快速搭建项目

安装完成后检查版本:npm webpack -v。安装完成后检查版本:node -v;回车等待项目创建完毕后用vscode打开。下载完成后一直点击下一步,直至安装完成。如果出现对应版本号说明安装成功。

今天也要爱小姜的博客 357

Workbench中直接调用ICEM CFD进行网格划分

自从ANSYS 12.0之后,ICEM CFD就从Workbench中被分离出去,作为一个独立的程序使用了。取而代之的是Meshing模块。 在Meshing的属性节点菜单中右键点击Mesh,选择Insert > Method,插入方法。 选择需要划分网格的几何体,点击apply。此时Geometry显示为1 Body。 设置Method为MultiZone,如果不设置成这个的话,找不到进入ICEM CFD的入口。如果要划分四面体,可以在Mapped Mesh Type中选择其他类型。

Yan的博客 6513

React 从零到一执行原理 (2025 最新版)

React 从零到一的执行原理分析涵盖了JSX转译、虚拟DOM生成、Fiber架构、调和与调度机制、组件构建过程以及Hooks的执行机制。React通过Babel将JSX转译为React.createElement调用,生成虚拟DOM树。Fiber架构将渲染工作拆分为可中断的单元任务,支持增量渲染和优先级调度。调和算法通过比较新旧虚拟DOM树,找出最小差异并标记副作用,提交阶段则一次性应用这些变更。组件分为函数组件和类组件,函数组件通过Hooks管理状态和副作用,Hooks的执行依赖于Fiber对函数组件状

Bruce__taotao的博客 2254

Robosuite与Robomimic:机器人学习的黄金搭档

本文深入探讨了Robosuite与Robomimic这对机器人学习的黄金组合,详细介绍了如何利用Robosuite进行物理仿真和任务环境构建,以及Robomimic在演示数据处理和离线学习算法实现中的应用。通过实际案例和代码示例,展示了从仿真环境搭建到模型训练的全流程,帮助研究人员高效开展机器人学习实验。

weixin_29178069的博客 416

图形学基础|球谐光照(Spherical Harmonics Lighting)

球谐光照(Spherical Harmonics Lighting) 文章目录球谐光照(Spherical Harmonics Lighting)一、前言二、球谐函数2.1 基函数2.2 投影与重建2.3 应用三、漫反射环境光3.1 IrradianceMap3.2 数学推导3.3 实践参考博文 一、前言 在学习图形渲染的过程中,一直對球谐函数(球谐光照)有一点了解,但没有亲手实现过。 关于球谐函数的数学概念是比较复杂的,笔者也实在无法完全理解,这篇文章只能从做东西的角度来说,公式是如何和代码进行对应的。

【黑键】 1万+

简单React项目从0到1

一个小前端项目

m0_60695518的博客 1200

推荐系统在音乐领域的实践:网易云音乐推荐算法解析

你是否有过这样的经历?打开网易云音乐,“私人FM”里总能推到你想听的歌;“每日推荐”的歌单,往往藏着你没听过但一入耳就爱上的曲目。这些“懂你”的推荐背后,是一套复杂却精密的推荐系统在运转。问题陈述:音乐推荐的难点远超一般商品——音乐是高度主观的艺术,用户兴趣易随心情、场景变化;小众音乐的“长尾效应”显著,如何让冷门好歌被发现?传统协同过滤依赖历史行为,面对新用户/新歌曲的“冷启动”问题束手无策;而单纯的内容推荐又难以捕捉用户的隐性兴趣。核心方案:网易云音乐采用“混合推荐策略”——融合协同过滤(CF)

AI天才研究院 2090

前端项目从0到1搭建完整指南

本文详细介绍了使用React+TypeScript技术栈开发博客前端系统的完整过程。系统采用模块化设计,包含用户认证、文章管理、状态管理等功能模块。技术选型包括:React Router实现路由、Material-UI构建UI、Zustand管理状态、Axios处理API请求。项目采用分层架构,包含组件层、页面层、服务层和状态管理层。文章逐步展示了从项目初始化、基础组件开发到路由配置、状态管理的完整开发流程,并提供了详细的代码实现和功能测试清单。该系统实现了响应式设计、富文本编辑、JWT认证等核心功能。

m0_75220683的博客 1997

信息抽取实战:三元组抽取(限定领域 vs 开放领域)(附代码)

信息抽取实战:三元组抽取 目录信息抽取实战:三元组抽取一、限定领域的三元组抽取比赛介绍数据分析序列标注模型关系分类模型三元组提取总结开放领域的三元组抽取标注平台文本分类新数据进行三元组抽取总结参考文献 一、限定领域的三元组抽取   本项目将会介绍在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试。由于该比赛早已结束,当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集。但是,这并不耽误我们在这方面做实验。 比赛介绍   该比赛的网址为:http://lic2019.ccf.org.

南有芙蕖 2万+

STM32F103跑LVGL,用DMA加速刷屏,800*480大屏也能丝滑

本文详细介绍了如何在STM32F103芯片上通过DMA加速和内存优化,实现800*480大屏的LVGL流畅运行。通过FSMC+DMA硬件架构优化、双缓冲机制和LVGL参数调优,显著提升了界面刷新率和响应速度,适用于嵌入式GUI开发中的高性能需求场景。

weixin_30357231的博客 377

从零开始创建一个react项目完整实践(非常全面,建议收藏)

本文介绍了React项目开发的完整流程,从环境准备到部署上线。主要内容包括:1) 安装Node.js和包管理器;2) 使用Vite或Create React App创建项目;3) 初始化开发环境并配置目录结构;4) 推荐开发顺序:路由规划→页面框架→组件体系→状态管理→API封装→业务逻辑开发→权限控制→环境配置→用户体验优化;5) 调试测试与部署方案。文章还提供了Vite+React+TypeScript的项目模板建议,适合中小型到中大型项目参考。整个流程强调模块化开发和工程化规范,涵盖了从技术选型到实际

hello! 7334

mpu6050原理图_STM32控制 MPU6050 六轴陀螺仪资料汇总

一般使用MPU6050的步骤是先驱动I2C总线,然后初始化MPU6050,从MPU6050读取数据,最后是数据的处理。本文档详细介绍有关MPU6050 三维角度传感器电子陀螺仪使用说明。附件内容提供该 MPU6050模块原理图,配套STM32代码,相关数据手册及参考文档。实物连接图:MPU6050 六轴陀螺仪特点:使用芯片:MPU-6050供电电源:3-5v(内部低压差稳压)通信方式:标...

weixin_39911056的博客 4759

从0到1搭建React商城,手把手教程来了!

一、React 商城开发前奏 在当今的前端开发领域,React 已然成为了一颗耀眼的明星。它凭借着高效的虚拟 DOM、组件化的开发模式以及庞大的生态系统,深受广大开发者的喜爱。据统计,在全球范围内,超过 40% 的开发者都在使用 React 进行项目开发,其市场地位可见一斑。 React 的优势不仅仅体现在技术层面,它还拥有丰富的第三方库和工具,如 Redux、React Router、Next.js 等,这些工具和库为开发者提供了强大的支持,使得开发复杂应用变得更加容易。无论是构建单页面应用还是大

qq_22232065的博客 1099

从“Segmentation fault”到流畅运行:深入解析CARLA Engine crash与Signal 11报错排查指南

本文深入解析了CARLA仿真平台运行时遭遇的Engine crash与Signal 11(Segmentation fault)报错。文章指出,该错误的根本原因常与NVIDIA显卡驱动版本不兼容有关,并提供了从日志分析、常见方案试错到驱动安全降级的完整排查指南,帮助用户从崩溃走向流畅运行。

pca5navigator的博客 467

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【React进阶-1】从0搭建一个完整的React项目(入门篇)

这篇文章带领大家从零开始手动撸一个React项目的基础框架,集成React全家桶。万字长文,请各位有足够的时间时再来阅读和学习。概述 平时工作中一直在用React提供的脚手架工具搭建React项目,一行命令全都搞定,自己只管做需求开发即可,从来没仔细研究过各个模块代码怎么去配置,相互之间怎么去进行交互。这周正好有时间,所以决定仔细研究下React项目中的各个功能模块,所以我们来讲解下如何从零搭建一个完整的React项目。目录 项目初始化 安装NodeJS环境和初始化项目安装webpack新建项目目录和文件

jsjxxx的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【React】从0到1搭建你的React18项目

从0到1搭建你的react18项目一,项目搭建安装脚手架CRA保留核心代码二、使用gitee管理项目三、使用scss预处理器四、配置路由基础路由在非组件环境下拿到路由信息路由懒加载五、组件库antd使用六、配置别名路径安装@craco/craco@别名路径提示七、安装dev-tools调试工具八、封装axios工具模块九、使用mobx模块化配置组件中使用mobx九、项目本地预览十、 打包体积分析 一,项目搭建 安装脚手架CRA 使用create-react-app生成项目 npx create-r

前端之行,任重道远! 7582

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

通过Umijs从0到1搭建一个React项目

有一阵时间没写react了,今天通过umi搭建一个demo项目复习一下react;umi是一个可扩展的企业级前端应用框架,在react市场中还是比较火的一个框架。

m0_66360096的博客 1056

react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)

react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目。文中针对react、webpack、babel、react-route、redux、redux-saga的核心配置会加以讲解,通过这个项目,可以系统的了解react技术栈的主要知识,避免搭建一次后面就忘记的情况。 代码库:https://github.com/teapot-py/react-...

郑清 1万+

如何创建一个 react 项目

本文介绍了构建React项目的四种方式:推荐使用Vite快速搭建纯前端项目,适合学习与SPA开发;Next.js App Router适用于全栈、SSR及AI应用,强烈推荐;create-react-app与generator-react-webpack已逐渐退位,仅用于老项目维护。文中详细对比了各工具的适用场景,并给出Vite和Next.js的创建命令,为开发者提供清晰的技术选型建议。

青蛙king的博客 3万+

React-从0到1搭建一个React项目(二)

文章目录react路由路由配置数据层定义action实现reduce创建store使用 Provider容器层实现一个组件组件CSS如何调用reduce中的方法和使用store中的数据 本篇是《从0到1搭建react项目》的第二篇,主要介绍react路由配置、数据层和容器层实现。 react路由 react-router基本已成为react路由的标准解决方案。我使用的是react-router-d...

HuangLin的博客 1186

从0到0.1:最简单的React项目搭建

教你从零搭建React项目。 自从React火遍大江南北后,相信很多人都在加入到React队伍的路上,但是如何从零开始搭建一个React项目呢?本文将为大家介绍如何快速简单地搭建一个新的React项目。

zhou_xiao_cheng的博客 6809

写给前端新人:从 0到1 搭建一个前端项目,都需要做什么?

点击上方关注前端技术江湖,一起学习,天天进步不使用脚手架搭建 React 项目:https://github.com/zhuyuanmin/react-0-1-build。读者可根据提交...

zz_jesse的博客 6118

01【React再造之旅】从0搭建一个完整的React项目(初稿)

概述 平时工作中一直在用React提供的脚手架工具搭建React项目,一行命令全都搞定,自己只管做需求开发即可,从来没仔细研究过各个模块代码怎么去配置,相互之间怎么去进行交互。这周正好有时间,所以决定仔细研究下React项目中的各个功能模块,所以我们来讲解下如何从零搭建一个完整的React项目。 本文篇幅较长,请你耐心阅读~ 目录 概述 目录 操作步骤 一、项目初始化 1、安...

X北辰北的博客 1157

从0到1搭建Letmeask:基于React 17与TypeScript的项目初始化

Letmeask是一个基于React 17与TypeScript构建的实时问答平台项目,通过本指南你将快速掌握如何从零开始搭建这个项目的开发环境。 ## 1. 环境准备:安装必要工具 在开始项目初始化前,请确保你的开发环境中已安装以下工具: - Node.js(推荐v14+版本) - npm或yarn包管理器 - Git版本控制工具 ## 2. 获取项目代码 使用Git命令克隆项目仓库到本

gitblog_00324的博客 719
上一篇: React-从0到1搭建一个React项目(二)
下一篇: 解决-Spring boot: 加载jar包外部json配置文件时,报错"File not found"
Huang-Lin
博客等级 码龄10年 20粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值