当前位置: 首页 > news >正文

脚手架搭建React项目

脚手架搭建项目

1. 认识脚手架工具

  • 1.1. 前端工程的复杂化
    • 1.1.1. 如果只是开发几个小的demo程序,那么永远不要考虑一些复杂的问题:
      • 比如目录结构如何组织划分;
      • 比如如何关键文件之间的相互依赖;
      • 比如管理第三方模块的依赖;
      • 比如项目发布前如何压缩、打包项目;
      • 等等…
    • 1.1.2. 现在的前端项目已经越来越复杂:
      • 不会在是HTML中引入几个css文件,引入几个编写的js文件或者第三方的js文件这么简单;
      • 比如css可能是使用less、sass等预处理器编写,需要将它们转换成普通的css才能被浏览器解析
      • 比如Javascript代码不再只是编写几个文件中,而是通过模块化,被组成在成败上千个文件中,需要通过模块化来管理它们之间的相互依赖;
      • 比如项目需要依赖很多的第三方那个库,如何更好的管理它们(比如管理它们的依赖,版本升级等)
    • 1.1.3. 为了解决上面这些问题,需要学习一下工具;
      • 比如babel、webpack、gulp,配置它们转规则、打包依赖、热更新等等内容;
      • 脚手架的出现,就是帮助解决这一系列的问题的
  • 1.2. 脚手架是什么?
    • 1.2.1. 传统的脚手架指的是建筑学的一种结构: 在搭建楼房、建筑物时,临时搭建出来的一个框架;
    • 1.2.2. 编程中提到的脚手架(scaffold), 其实是一种工具,可以快速生成项目的工程化结构;
      • 每个项目做出完成的效果不同,但是它们的基本工程化结构是相似的;
      • 既然相似, 就没有必要每次都从零开始搭建,完全可以使用一些工具,帮助生成基本的工程化模块;
      • 不同的项目,在这个模块的基础之上进行项目的开发或者进行一些配置的简单修改即可;
      • 这样也可以间接保证项目的基本结构一致性,方便后期维护;
    • 1.2.3. 总结:脚手架让项目从搭建到开发,再到部署,整个流程变得快速和便捷;
  • 1.3. 前端脚手架
    • 1.3.1. 对于现在比较流行的三大框架都有属于自己的脚手架:
      • React的脚手架:create-react-app
      • Vue的脚手架:@vue/cli
      • Angular的脚手架:@angular/cli
    • 1.3.2. 它们的作用都是帮助我们生成一个通用的目录结构,并且已经将所需的工程环境配置好了。
    • 1.3.3. 使用这些脚手架需要依赖什么?
      • 目前这些脚手架都是node编写的,并且都是基于webpack的;
      • 所以必须在电脑上安装node环境
    • 1.3.4. 主要是学习React, 所以以React的脚手架工具:create-react-app为例
    • 1.3.5. React脚手架本身需要依赖node, 所以需要安装node环境;
      • 查看node版本,node --version
        在这里插入图片描述

2. react-react-app

  • 2.1. 安装create-react-app
    • npm install create-react-app -g
      在这里插入图片描述

    • create-react-app --version
      在这里插入图片描述

2.2. 创建react项目

  • 2.2.1. 创建React项目的命令如下

    • create-react-app 项目名称
      • 注意:项目名称不能包含大写字母
      • 另外还有更多创建项目的方式,可以参考github的readme文档(npx create-react-app my-app\npm init react-app my-app)

    在这里插入图片描述

    在这里插入图片描述

  • 2.2.2. 创建项目成功后,进入项目目录,就可以将项目运行起来:

    • cd 02_learn_scaffold
    • npm run start / npm start
      在这里插入图片描述
  • 2.2.3 目录结构分析
    在这里插入图片描述

    • 2.2.3.1. 目录结构介绍
      my-app
      ├── README.md // 项目说明文件
      ├── node_modules // 存放第三方依赖包
      ├── package-lock.json // 记录项目相关包依赖真实版本信息
      ├── package.json // 记录项目相关包依赖信息
      ├── .gitignore // git忽略文件
      ├── public // 存放静态资源文件
      │ ├── favicon.ico // 项目网站图标
      │ ├── index.html // 项目入口模板文件
      │ └── manifest.json // 和Web App配置相关 (pwa应用可以把网站添加到桌面图标,就像手机上安装其他的app应用一样,它作用就是想要像app一样拥有一些东西的配置文件)
      │ └── robots.txt // 爬虫的配置文件,用来告诉别人那些东西可以爬取,哪些不能爬取
      └── src // 存放源代码
      ├── App.css // App组件相关的样式
      ├── App.js // App组件的代码文件
      ├── App.test.js // App组件的测试代码文件
      ├── index.css // 全局的样式文件
      ├── index.js // 整个应用程序的入口文件
      ├── logo.svg // 刚启动项目看到的React图标
      └── serviceWorker.js // 离线缓存配置文件
      └── reportWebVitals.js // 网页性能监测相关的文件
      └── setupTests.js // 自动执行的测试配置文件
  • 2.2.3.2. package-lock.json文件中的react依赖依赖

    • "react": {"version": "19.1.1", // 版本号"resolved": "https://registry.npmmirror.com/react/-/react-19.1.1.tgz", // 仓库地址"integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", //查找本地缓存,如果本地有缓存,则不会从服务器下载,直接解包本地缓存里面的东西就可以了"requires": { // 依赖另外的包...}}   
      
  • 2.2.3.3. 了解PWA

    1. 整个目录结构都非常好理解,只是有一个PWA相关的概念;
    • 1.1. PWA的全称是Progressive Web App,即渐进式Web应用
    • 1.2. 一个PWA应用首先是一个网页,可以通过web技术(React/Vue等等)编写出一个网页应用
    • 1.3. 随后添加上App ManifestService Worker来实现PWA的安装和离线等功能;
      • App Manifest文件:
        • 相当于间接的把一个网站变成了一个像APP一样的一个东西的配置文件,变成了一个桌面图标,一点击桌面图标可以直接打开网站,这个就是PWA想要做的一个事情;
        • 如果想要做一个PWA应用,它就必须要求有个Manifest文件
        • Manifest文件就是关于网站想要像App一样拥有一些东西的配置文件
        •   {"short_name": "React App", // 桌面图标名称"name": "Create React App Sample", // 完整名称"icons": [ // 图标{"src": "favicon.ico","sizes": "64x64 32x32 24x24 16x16","type": "image/x-icon"},{"src": "logo192.png","type": "image/png","sizes": "192x192"},{"src": "logo512.png","type": "image/png","sizes": "512x512"}],"start_url": ".", // 指定应用启动URL"display": "standalone",  // 指定应用显示模式, standalone: 表示应用以独立应用程序的形式运行,不显示浏览器的地址栏、工具栏等UI元素,提供类似原生应用的用户体验。"theme_color": "#000000", // 指定应用主题色"background_color": "#ffffff" // 背景色}
          
    • 1.4. 这种web存在的形式,我们也称之为Web App
    1. PWA解决那些问题:
    • 2.1. 可以添加至主屏幕,点击主屏幕图标可以实现启动动画以及隐藏地址栏;
    • 2.2. 实现离线缓存工鞥男,即使用户手机没有网络,依然可以使用一些离线功能;
    • 2.3. 实现了消息推送;
    • 2.4. 等等一系列类似于Native App相关的功能;
    1. 更多PWA相关的知识,可以参考MDN文档
    • 3.1. 地址:https://developer.mozilla.org/zh-CN/docs/Web/Progressive_web_apps
http://www.lryc.cn/news/606427.html

相关文章:

  • 解决Python ModuleNotFoundError:使用python -m的妙招
  • Spring MVC体系结构和处理请求控制器
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-52,(知识点:简单一阶低通滤波器的设计,RC滤波电路,截止频率)
  • 【Kubernetes 指南】基础入门——Kubernetes 201(三)
  • 【Linux】的起源 and 3秒学习11个基本指令
  • 第十三天:蛇形矩阵
  • Cesium 快速入门(二)底图更换
  • Spring Security之初体验
  • AUTOSAR进阶图解==>AUTOSAR_SRS_FreeRunningTimer
  • 基于STM32设计的景区便民服务系统(NBIOT)_261
  • 04百融云策略引擎项目laravel实战步完整安装composer及tcpdf依赖库和验证-优雅草卓伊凡
  • Docker 实战 -- cloudbeaver
  • C++手撕简单KNN
  • Apache Tomcat样例目录session操纵漏洞解读
  • vue+elementUI上传图片至七牛云组件封装及循环使用
  • python逻辑回归:数学原理到实战应用
  • 电子电气架构 --- 车载48V系统开辟全新道路
  • YOLO+Pyqt一键打包成exe(可视化,以v5为例)
  • 在Trae中使用MoonBit月兔1 创建项目
  • 极客大挑战2020(部分wp)
  • 材质:3D渲染的隐形支柱
  • window怎么安装pyqt6以及 安装 pythonqt6 会遇到的问题和怎么解决
  • Ubuntu 下配置 NVIDIA 驱动与 CUDA 环境(适配 RTX 4060Ti)
  • Leetcode-206.反转链表
  • 【前端知识】JS单线程模型深入解析
  • LangGraph认知篇-Send机制
  • 掌握Python三大语句:顺序、条件与循环
  • 【生活系列】MBTI探索 16 种性格类型
  • springcloud04——网关gateway、熔断器 sentinel
  • 难以逾越的夏天