【React】P2 create-react-app基础操作

news2024/11/17 8:25:26

文章目录

    • 当前以及未来的开发,一定是:组件化开发
    • 如何划分组件
    • React的工程化/组件化开发
    • create-react-app基础运用
      • 运用
      • react常用版本
      • 一个React项目中,默认会安装

2023年最新珠峰React全家桶【react基础-进阶-项目-源码-淘系-面试题】

当前以及未来的开发,一定是:组件化开发

  • 有利于团队协作开发
  • 便于组件的复用:提高开发效率、方便后期维护、减少页面中的冗余代码

如何划分组件

  • 业务组件:正对项目需求封装的
    • 普通业务组件:没有啥复用性,只是单独拆出来的一个模块
    • 通用业务组件:具备复用性
  • 功能组件:适用于多个项目(例如:UI组件库中的组件)
    • 通用功能组件

因为组件化开发,必然会带来“工程化”的处理
也就是基于webpack等工具(vite/ rollup/ turbopack)
- 实现组件的合并、压缩、打包等
- 代码编译、兼容、校验。。。
- 。。。

React的工程化/组件化开发

可以基于webpack自己去搭建一套工程化打包的架子,但是这样非常的麻烦复杂,React官方提供了脚手架:create-react-app

脚手架:基于它创建项目,默认就把webpack的打包规则已经处理好,把一些项目需要的基本文件也创建好。

create-react-app基础运用

运用

安装脚手架

npm i create-react-app -g  (mac前面要设置sudo)

检查安装情况(显示版本号即安装成功)

  create-react-app --version

基于脚手架创建React工程化的项目

create-react-app 项目名称

项目名称要遵循npm包命名规范:使用”数字、小写字母、_“命名

默认项目目录
|- node_modules
|- src:所有后续编写的代码,几乎都放在SRC下(打包时,一般只对这个目录下的代码进行处理)
|- index.js
|- public:放页面模板
|- index.html
|- package.json
|- …

注:项目目录结构出现package-lock.json,则代表是npm安装,改成yarn安装需删除package-lock.json、node_modules后重新执行yarn install

react常用版本

很早之前是15版本(太早了)
16版本:一些项目用的最多的
17版本:最大的升级就是看不出升级(语法没变啥,只是底层处理机制上升级了)

18版本:新版本(机制和语法上都有区别)

脚手架默认安装18版本

一个React项目中,默认会安装

  • react:React框架的核心
  • react-dom:React试图渲染的核心(基于React构建WebApp-HTML页面)
  • react-native:构建和渲染App的
  • react-scripts:脚手架为了让项目目录看起来干净一些,吧webpack打包的规则及香港的插件/LOADER等都隐藏到了node_modules目录下,react-scripts就是脚手架中自己对打包命令的一种封装,基于它打包,会调用node_modules中的webpack等进行处理
  • web-vitals:性能检测工具

package.json

{
  "name": "reactdemo",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.17.0",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-scripts": "5.0.1",
    "web-vitals": "^2.1.4"
  },
  # 打包命令是基于react-scripts处理
  "scripts": {
    "start": "react-scripts start", # 开发环境:在本地启动web服务器,预览打包内容
    "build": "react-scripts build", # 生产环境:打包部署,打包的内容输出到dist目录中
    "test": "react-scripts test", # 单元测试
    "eject": "react-scripts eject" # 暴露webpack配置规则(因为我想修改默认的打包规则)
  },
# 对webpack中ESLint词法检测的相关配置;词法检测:
# - 词法错误(不符合标准规范)
# - 符合标准,代码本身不会报错,但是不符合ESLint的检测规范
# const num=20; num声明了但没有使用
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  # 基于browserslist规范,设置浏览器兼容情况,
  # 1.postcss-loader+autoprefixer会给CSS3设置相关的前缀
  # 2.babel-loader 会把ES6编译为ES5
  "browserslist": {
    "production": [
      ">0.2%", # 使用率超过0.2%的浏览器
      "not dead", # 不考虑IE
      "not op_mini all" # 不考虑欧朋浏览器
    ],
    # 默认不兼容低版本和IE浏览器的
    "development": [
      "last 1 chrome version", # 谷歌只考虑最后一个版本
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

src目录删除多余文件,仅保留index.js
在这里插入图片描述

public目录删除多余文件
在这里插入图片描述

# 启动
yarn start
# 打包
yarn build

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1150806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生产者-消费者模型

目录 1、生产者-消费者模型是什么 2、Java中的实现 3、应用于消息队列 3.1 引入依赖 3.2 rabbitmq网站新建队列queue 3.3 模块中配置application.yml 3.4 生产者实现类 3.5 单元测试,发送msg到rabbitmq的队列(my_simple_queue) 3.6 消费者实现类 3.7 从ra…

E1基于线性表的图书管理系统

需求分析 【提示:以无歧义的陈述说明程序设计的任务,主要说明内容是程序要做什么。并明确规定:(1) 输入的形式和输入值的范围;(2) 输出的形式;(3) 程序所能达到的功能。】 图书信息管理: 定义一个包含图…

C/C++网络编程基础知识超详细讲解第二部分(系统性学习day12)

懒大王感谢大家的关注和三连支持~ 目录 前言 一、UDP编程 UDP特点: UDP框架: UDP函数学习 发送端代码案例如下: 二、多路复用 前提讲述 select poll 三、图解如下 总结 前言 作者简介: 懒大王敲代码,…

OpenLayers实战,OpenLayers解析渲染TopoJson格式区划边界数据和实现鼠标经过高亮显示区划边界和文字

专栏目录: OpenLayers实战进阶专栏目录 前言 本章使用OpenLayers实现从vue项目中加载assets资源目录中的TopoJson格式数据,解析渲染TopoJson格式行政区划边界数据,并且实现鼠标经过区域高亮显示区划边界和文字的功能。 本章是综合应用,为方便大家理解代码,拆分为简单的…

强化学习中的值函数

一、值函数 几乎所有的强化学习算法都涉及到估计值函数——状态(或状态-动作对)的函数,这些函数估计代理处于给定状态(或在给定状态下执行给定动作)的好坏。这里的“好坏”概念是根据可以预期的未来奖励来定义的&#…

动手学深度学习 - 学习环境配置

学习环境配置 1、安装 Miniconda1.1 下载 miniconda31.2 环境变量配置1.3 安装成功测试1.4 配置文件1.5 使用conda创建、使用、删除环境1.6 conda 常用命令 2、使用 miniconda 安装 d2l2.1 下载 d2l 安装包2.2 安装 d2l 1、安装 Miniconda 参考: https://www.jb51.n…

云尘-JIS-CTF-VulnUpload

继续做渗透 一样给了c段 开扫 存在一个站点 去看看 扫一下吧 第一个flag出来了 存在robots.txt 去看看 admin 页面源代码 第二个flag和账号密码 登入 就一个上传点 这不明显死了哈哈哈哈哈哈哈 直接开喽 上传修改后缀一气呵成 发现只有success 但是我们刚刚robots存在uploa…

十五、redis的使用

目录 一、简介1.1 nosql介绍1.2 redis特性1.3 redis优势1.4 redis应用场景 二、安装2.1 Macos下安装2.2 Linux下安装2.4 客户端连接2.5 切换数据库 三、数据库操作3.1 string类型3.2 键的操作3.3 Hash类型3.4 list类型3.5 set类型3.6 zset类型 四、和python交互4.1 安装redis包…

3.2每日一题(定积分求抽水做工问题)

1、画图,把题目的容器画出来:球形容器,半径为R 2、根据容器的形状进行分析: 抽水的实质是不同深度的水抽出去走的位移是不一样的>抽水的过程 : (1)先考虑深度为 x到xdx 的薄层水抽出去做多少…

草料资料库丨2023年全国消防宣传月资料合集,免费下载

2023年11月9日是第32个全国消防日,国务院安委会办公室决定于11月份在全国开展消防宣传月活动,主题是“预防为主,生命至上”。 结合今年消防安全月相关要求,我们特邀 注册安全工程师 邵悦 为大家整理了2023年全国消防宣传月的资料…

2023-在mac下安装Homebrew的国内镜像

mac安装Homebrew的国内镜像 尝试使用其他下载源:GitHub 可能会受到访问限制,尝试使用其他镜像或下载源。您可以使用清华大学、中科大或阿里云的 Homebrew 镜像,以提高下载速度和可靠性。例如,可以使用阿里云的镜像来安装 Homebre…

myCobot 320 APP 控制技术案例

引言 机械臂是现代工业和科研领域中的重要工具,它们在制造业、医疗、农业、教育等多个领域都有广泛的应用。这些机器臂不仅可以进行精密操作,而且能够在人类无法进入的危险环境中工作,大大提高了工作效率和安全性。然而,传统的机械…

UE5 日记(人物连招:蒙太奇动画通知(含视频链接))

教程https://www.youtube.com/watch?vsWpENaVGj2M&listPLiSlOaRBfgkcPAhYpGps16PT_9f28amXi&index10&ppiAQB 相关蓝图 连招逻辑 动画通知类 逻辑分析 1.用户输入 已搭载战斗系统模块,可以收到输入指令 2.连击 第一次攻击: 第一次攻击,…

camtasia studio 2024功能介绍安装教程

Camtasia studio 2024是一款功能强大的屏幕录制和视频编辑软件。它可以帮助用户轻松地记录电脑屏幕上的任何操作,并可以将录制的视频进行编辑和制作成高质量的视频教程、演示文稿、培训课程等。 Camtasia studio 2024具有直观的界面和易于使用的工具,包…

springboot动态数据源【非伪数据源】

说明&#xff1a;本文章的数据源不是在配置文件中配置两个或多个数据源&#xff0c;在业务方面对这些数据源来回切换&#xff0c;本文章中的数据源是可以动态添加&#xff0c;修改&#xff0c;切换的&#xff0c;废话不多说。 先看工程图&#xff1a; 1.pom.xml文件 <?x…

第五章 I/O管理 三、I/O控制方式(程序直接控制、中断驱动方式、DMA方式、通道控制方式)

目录 一、程序直接控制方式 1、以读操作为例 2、CPU的干预 3、数据传送的单位 4、数据的流向 5、优点 6、缺点 二、中断驱动方式 1、定义&#xff1a; 2、CPU干预的频率 3、数据传送的单位 4、数据的流向 5、主要缺点和主要优点 优点: 缺点: 三、DMA方式&#x…

R语言使用surveyCV包对NHANES数据(复杂调查加权数据)进行10折交叉验证

美国国家健康与营养调查&#xff08; NHANES, National Health and Nutrition Examination Survey&#xff09;是一项基于人群的横断面调查&#xff0c;旨在收集有关美国家庭人口健康和营养的信息。 地址为&#xff1a;https://wwwn.cdc.gov/nchs/nhanes/Default.aspx 既往咱们…

世界前沿技术发展报告2023《世界航空技术发展报告》(六)航空动力技术

&#xff08;六&#xff09;航空动力技术 1.军用航空动力技术1.1 美国空军授出下一代自适应推进项目合同1.2 法国完成下一代战斗机发动机原型机地面测试1.3 美国通用电气公司为美国陆军测试首台T901涡轴发动机1.4 美国液体活塞公司研制高功重比重油发动机 2.民用航空动力技术2.…

这样刻《少年强则国强》也行……

孙溟㠭篆刻《少年强则国强 》 这是篆书&#xff0c;隶书&#xff0c;简化字刻法有点意思。 孙溟㠭篆刻《少年强则国强》

信息系统项目管理师教程 第四版【第7章-项目立项管理-思维导图】

信息系统项目管理师教程 第四版【第7章-项目立项管理-思维导图】 课本里章节里所有蓝色字体的思维导图