React基础-webpack+creact-react-app创建项目

学习视频:学习视频

2节:webpack工程化创建项目

2.1.webpack工程化工具:vite/rollup/turbopak;

+实现组件的合并、压缩、打包等;
+代码编译、兼容、校验等;

2.2.React工程化/组件开发

我们可以基于webpack自己去搭建一套工程化打包的架子,但是这样非常的麻烦、复杂;React官方,为我们提供了一个脚手架:
+脚手架:基于它创建项目,默认就把webpack的打包规则已经处理好了,把一些项目需要的基本文件也都创建好了

2.3.create-react-app基于运用

  • 安装脚手架:npm跑项目改为yarn跑项目:把node_modules和package-lock.json删掉,用yarn跑就行了
    $ npm i create-react-app -g
    检查安装情况
    $ create-react-app --version
  • 基于脚手架创建React工程化的项目
    $ create-react-app 项目名称 (项目名称要遵循npm命名规则,数字、小写字母、_ 命名)
项目目录:
|-node_modules: 项目依赖
|-src: 所有后续编写的代码,几乎都放在src下,[打包的时候一般只对这个目录下的代码进行处理]|-index.js ----入口文件
|-public:放页面模板|-index.html
|-package.json

在这里插入图片描述

2.4.React项目中,默认会安装:

react: React框架的核心
react-dom: React视图渲染的核心[基于React构建webApp(HTML页面)]
react-natvie: 构建和渲染APP的
react-scripts: 脚手架为了让项目目录看起来干净一些,把webpack打包的规则及相关的插件/LOADER等都隐藏到了node_modules目录下,react-sctipts就是
脚手架中自己对打包命令的一种封装,基于它打包,会调用node_modules中的webpack等进行处理
web-vitals: 性能检测工具
在这里插入图片描述

2.5.package.json文件

在这里插入图片描述
eslint配置:
在这里插入图片描述
浏览器兼容配置:
在这里插入图片描述
src文件夹:
在这里插入图片描述

3节:脚手架的进阶应用

3.1 yarn eject / npm run eject的使用

在这里插入图片描述
命令执行后会生成两个文件夹:config和scripts
在这里插入图片描述
在这里插入图片描述
package.json文件的更改:
在这里插入图片描述
babel-preset-react-app包是对@babel/preset-env语法包的重写[目的:把es6转为es5],重写的目的:让语法包可以识别React的语法,实现代码转换
在这里插入图片描述
在这里插入图片描述

3.2.常见的配置修改

  • 把sass改为less
yarn add less less-loader@8 // 使用第八个版本,用新版本有些配置规则会匹配不上
yarn remove sass-loader

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • create-react-app脚手架默认webpack规则的修改:直接去暴露的源码中改:(在webpack.config.js文件中改)
    所以需要大家具备一定的webpack能力

  • 配置别名:
    在这里插入图片描述

  • 修改端口号和域名:
    在这里插入图片描述

如果想基于修改环境变量的方式来改:

yarn add cross-env

在这里插入图片描述

  • 修改浏览器兼容
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 跨域代理:处理Proxy跨域
    在这里插入图片描述
  1. 在src目录中新建setupProxy.js文件(config/paths.js文件 中setupProxy.js作为跨域入口文件)
yarn add http-proxy-middleware

http-proxy-middleware:实现跨域代理的模块[webpack-dev-serve的跨域代理原理,也是基于它完成的]
在这里插入图片描述
测试使用:
在这里插入图片描述

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

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

相关文章

sql-labs25-28a

一、环境 网上都有不过多阐述 二、sql-labs第25关 它说你的OR和and属于它,那就是过滤了OR和and 注入尝试 不用or和and进行爆破注入,很明显是有注入点的 ?id-1 union select 1,2,3-- 查看数据库 ok,此道题算是解了但是如果我们用了and了呢 ?id-1 and updatex…

浅谈集群的分类

本文主要介绍集群部署相关的知识,介绍集群部署的基础,集群的分类、集群的负载均衡技术,集群的可用性以及集群的容错机制。随后介绍Redis-Cluster以及Mysql的架构以及主从复制原理。 集群介绍 单台服务器本身会受到带宽、内存、处理器等多方面…

STM32-串口通信(串口的接收和发送)

文章目录 STM32的串口通信一、STM32里的串口通信二、串口的发送和接收串口发送串口接收 三、串口在STM32中的配置四、串口接收的两种实现方式1. 需要更改的地方2. 查询RXNE标志位3. 使用中断 总结 STM32的串口通信 本文在于记录自己的学习过程中遇到的问题和总结,各…

大型语言模型的语义搜索(一):关键词搜索

关键词搜索(Keyword Search)是文本搜索种一种常用的技术,很多知名的应用app比如Spotify、YouTube 或 Google map等都会使用关键词搜索的算法来实现用户的搜索任务,关键词搜索是构建搜索系统最常用的方法,最常用的搜索算法是Okapi BM25&#x…

Liunx使用nginx和http搭建yum-server仓库

文章目录 1. yum-server的搭建方式2. nginx搭建yum-server仓库2.1. 安装配置nginx2.2 配置yum-server的rpm2.3. 同步yum源相关包2.3.1 rsync同步源3.3.1 reposync同步源 2.4. 配置客户端访问yum配置2.5. 验证测试 3. http服务搭建yum-server仓库3.1. 安装配置http3.2 配置yum-s…

Firewalld防火墙

Firewalld概述 Firewalld firewalld防火墙是centos7系统默认防火墙的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具至此IPv4、IPv6…

studio one 6正版多少钱?怎么购买studio one 更便宜,有优惠券哦

Presonus Studio One Studio One是由美国PreSonus公司开发的数字音频工作站,作为DAW届的新人,功能强大且全面,虽然它不像其他DAW那样拥有历史和声誉,但它是一个可爱的软件,包含许多其它DAW所不具备的实用功能&#xff…

web基础及http协议 (二)----------Apache相关配置与优化

一、httpd 安装组成 http 服务基于 C/S 结构 1 .常见http 服务器程序 httpd apache,存在C10K(10K connections)问题 nginx 解决C10K问题lighttpd IIS .asp 应用程序服务器 tomcat .jsp 应用程序服务器 jetty 开源的servlet容器&#xf…

选择 Python IDE(VSCode、Spyder、Visual Studio 2022和 PyCharm)

前言 当选择 Python 开发工具时,你需要考虑自己的需求、偏好和项目类型。下面是对VSCode、Spyder、Visual Studio 2022和 PyCharm的对比推荐总结: 结论 1、如果你专注于“数据科学”,选择SpyDer没错。 内容 Visual Studio Code (VS Code)…

CleanMyMac2024苹果电脑清理工具最新使用全面评价

作为软件评价专家,我对CleanMyMac X进行了全面的评估,以下是我的详细评价: CleanMyMac X4.14.6全新版下载如下: https://wm.makeding.com/iclk/?zoneid49983 一、功能 CleanMyMac X的功能相当全面,几乎涵盖了Mac电脑清理所需的…

nginx 具体介绍

一,nginx 介绍 (一)nginx 与apache 1, Apache event 模型 相对于 prefork 模式 可以同时处理更多的请求 相对于 worker 模式 解决了keepalive场景下,长期被占用的线程的资源浪费问题 因为有监听线程&#…

【数据结构】链式队列

链式队列实现&#xff1a; 1.创建一个空队列 2.尾插法入队 3.头删法出队 4.遍历队列 一、main函数 #include <stdio.h> #include "./3.linkqueue.h" int main(int…

运维SRE-19 网站Web中间件服务-http-nginx

Ans自动化流程 1.网站集群核心协议&#xff1a;HTTP 1.1概述 web服务&#xff1a;网站服务&#xff0c;网站协议即可. 协议&#xff1a;http协议,https协议 服务&#xff1a;Nginx服务&#xff0c;Tengine服务....1.2 HTTP协议 http超文本传输协议&#xff0c;负责数据在网站…

更高效的构建工具-vite

更高效的构建工具-vite 前言Vite是什么Vite和webpack的比较1. 运行原理2. 使用成本 Vite的初体验 前言 首先我们要认识什么时构建工具&#xff1f; 企业级项目都具备什么功能呢&#xff1f; Typescript&#xff1a;如果遇到ts文件&#xff0c;我们需要使用tsc将typescript代码…

Android约束布局中用ConstraintHelper实现过渡动画效果

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 一.创建一个类CircularRevealHelper继承ConstraintHelper代码如下 /*** Author: ly* Da…

【Linux从青铜到王者】 基础IO

本篇重点&#xff1a;文件描述符&#xff0c;重定向&#xff0c;缓冲区&#xff0c;磁盘结构&#xff0c;文件系统&#xff0c;inode理解文件的增删查改&#xff0c;查找一个文件为什么一定要有路径&#xff0c;动静态库&#xff0c;有的时候为什么找不到库&#xff0c;动态库的…

JavaWeb——003Axios Vue组件库(Element)

目录 一、Ajax 1、同步与异步​编辑 2、原生Ajax&#xff08;繁琐&#xff09;​编辑 2.1、写一个简易的Ajax 3、Axios&#xff08;推荐使用&#xff09;​编辑 3.1、Axios入门 3.2、Axios请求方式别名 3.3、案例&#xff1a;基于Vue及Axios完成数据的动态加载展示​编…

AIoT网关 人工智能物联网网关

AIoT(人工智能物联网)作为新一代技术的代表&#xff0c;正以前所未有的速度改变着我们的生活方式。在这个智能时代&#xff0c;AIoT网关的重要性日益凸显。它不仅是连接智能设备和应用的关键&#xff0c;同时也是实现智能化家居、智慧城市和工业自动化的必备技术。      一…

【linux进程间通信(二)】共享内存详解以及进程互斥概念

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; 进程间通信 1. 前言2. 共享内…

电脑录屏软件哪个好用?实测告诉你答案(2024年最新)

在当今信息化快速发展的时代&#xff0c;无论是录制在线课程、游戏操作&#xff0c;还是制作教程、会议记录&#xff0c;一款电脑录屏软件显得尤为重要&#xff0c;可是电脑录屏软件哪个好用呢&#xff1f;本文将介绍三款主流的电脑录屏软件&#xff0c;通过分步骤详细讲述&…