React | React脚手架解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: React | React脚手架解析

一、认识脚手架工具

前端工程的复杂化

  • 如果我们只是开发几个小demo,那么就不需要考虑这些问题:
  • 目录结构如何组织划分,
  • 如何管理文件之间的相互依赖
  • 如何管理第三方模块依赖
  • 项目发布前的压缩,打包
  • 等...


现代的前端项目越来越复杂化

  • 不会再是HTML引入css,引入几个js或者第三方js那么简单
  • 如css可能是less,scss等预处理器,我们需要将其转换成普通的css才能被浏览器解析
  • 如JavaScript代码不再只是编写在几个文件中,而是通过模块化的方式,被组成在成百上千的文件中,需要通过模块化的技术来管理他们之间的相互依赖
  • 如项目需要依赖的第三方库,如何更好的进行管理(版本升级等..)


  • 为了解决上面的问题,我们需要去学习一些工具
  • 如babel,webpack,gulp,配置他们转换规则,打包依赖,热更新等一些内容
  • 脚手架的出现是帮助我们解决这一系列问题的

脚手架是什么?

  • 传统的脚手架指的是建筑学的一种结构:在搭建楼房,建筑物时,临时搭建出来的一个框架
  • 编程中的脚手架(Scaffold),其实是一种工具,帮助我们快速生成项目的工程化结构
  • 每个项目完成的效果不同,但是他们的基本工程化结构是相似的
  • 既然相似,就没必要去从零进行开发,完全可以使用一些工具,帮助我们生产基本的工程化模板
  • 不同的项目,在这个模板的基础上进行项目开发或进行一些配置的简单修改即可
  • 这样也可以间接保证项目基本结构一致,方便后期的维护
  • 脚手架让项目从搭建到开发,再到部署,整个流程变得快速和便捷

前端脚手架

  • 对于现在比较流行的三大框架都有属于自己的脚手架:
  • Vue的脚手架: @vue/cli
  • Angular的脚手架: @angular/cli
  • React的脚手架:create-react-app(CRA)


  • 他们的作用都是帮助我们生成一个通用的目录结构,并且将我们所需的工程环境配置好.
  • 使用这些脚手架需要依赖什么呢?
  • 目前这些脚手架都是使用node编写,并且都是基于webpack的
  • 所以我们必须在电脑上安装node环境

二、create-react-app

安装node

  • React脚手架本身需要依赖node,所以我们需要安装node环境
  • 无论是windows还是mac OS 都可以通过node官网直接进行下载
  • 这里推荐使用LTS版本,是长期支持版本,比较稳定

814ead27b3f149d2acb976fa8e2f9d7c.png

三、创建React项目

创建React项目

  • 创建React项目的命令如下:
  • 注:项目名称 不能包含大写字母
  • 另外还有更多创建项目的方式,可参考github的Readme
  • create-react-app 项目名称
  • 创建完成之后,进入对应的目录,就可以将项目跑起来:

目录结构分析

  • 我们可以通过VSCode打开项目:

7b2190e7409b4aeea14fc68985f2cf53.png

- public
-- favicon.ico // 应用程序顶部的icon图标
-- index.html // 应用的index.html入口文件
-- logo192.png // 在manifest.json中使用
-- logo512.png // 在manifest.json中使用
-- manifest.json // 和web app配置相关
-- robots.txt // 指定搜索引擎可以或者无法爬取哪些文件
- src
-- App.css // App组件相关样式
-- App.js // App组件代码文件
-- App.test.js // App组件的测试代码文件
-- index.css // 全局样式文件
-- index.js // 整个应用程序的入口文件
-- logo.svg // 启动项目所看到的React图标
-- reportWebVitals.js // 发送一些包之类的东西
-- setupTests.js // 测试初始化文件
- package.json // 对整个应用程序的描述:包括应用名称,版本,依赖包,及项目启动,打包等.
- README.md // readme说明文档

了解PWA

  • 整个目录结构都非常好理解,只是有一个PWA相关的概念:
  • PWA全程Progressive Web App渐进式WEB应用
  • 一个PWA应用首先是 一个网页 可以通过Web技术编写出一个网页应用
  • 随后添加上 App ManifestService Worker 来实现PWA的 安装和离线 等功能
  • 这种Web存在的形式,也称之为是Web App


PWA解决了哪些问题?

  • 可以添加至主屏幕,点击主屏幕图标可以实现启动动画及隐藏地址栏
  • 实现 离线缓存功能,用户手机没网,依然可以使用一些离线功能
  • 实现 消息推送
  • 等一系列类似于 Native App相关的功能

四、webpack配置

脚手架中的webpack

  • React脚手架默认是基于Webpack来开发的
  • 但是,很奇怪,我们并没有在目录结构中看到任何webpack相关的内容?
  • React脚手架将webpack相关的配置隐藏起来了


  • 如果我们希望看到webpack的配置信息,应该怎么做?
  • 可以执行一个pack.json文件中的一个脚本: "eject": "react-scripts eject"
  • 这个操作是不可逆的,所以执行过程中会给我们提示
  • npm run eject
相关文章
|
22天前
|
前端开发 JavaScript
React 步骤条组件 Stepper 深入解析与常见问题
步骤条组件是构建多步骤表单或流程时的有力工具,帮助用户了解进度并导航。本文介绍了在React中实现简单步骤条的方法,包括基本结构、状态管理、样式处理及常见问题解决策略,如状态管理库的使用、自定义Hook的提取和CSS Modules的应用,以确保组件的健壮性和可维护性。
59 17
|
3月前
|
前端开发 JavaScript
React Hooks 全面解析
【10月更文挑战第11天】React Hooks 是 React 16.8 引入的新特性,允许在函数组件中使用状态和其他 React 特性,简化了状态管理和生命周期管理。本文从基础概念入手,详细介绍了 `useState` 和 `useEffect` 的用法,探讨了常见问题和易错点,并提供了代码示例。通过学习本文,你将更好地理解和使用 Hooks,提升开发效率。
85 4
|
3月前
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
3月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
254 2
|
28天前
|
前端开发 UED
React 文本区域组件 Textarea:深入解析与优化
本文介绍了 React 中 Textarea 组件的基础用法、常见问题及优化方法,包括状态绑定、初始值设置、样式自定义、性能优化和跨浏览器兼容性处理,并提供了代码案例。
53 8
|
3月前
|
XML 前端开发 JavaScript
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
这篇文章是React的学习笔记,覆盖了从React的基础用法到高级特性,包括组件化、状态管理、生命周期、虚拟DOM等主题,适合React初学者参考。
115 0
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
|
2月前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
2月前
|
前端开发 JavaScript
React Hooks 深入解析
React Hooks 深入解析
32 0
|
2月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
89 9
|
2月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
163 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生

推荐镜像

更多