React--》超详细教程——React脚手架的搭建与使用

news/2025/1/15 6:56:31/

目录

React脚手架的创建

全局安装创建

npx安装创建(官方推荐)

指定React版本安装

脚手架文件介绍


React脚手架是开发现代Web应用的必备,其充分利用Webpack、Babel、ESlint等工具辅助项目的开发,当然这些工具也无需手动配置即可使用,脚手架的意义更多的是关注的是业务而不是工具的配置;项目的整体技术架构为:react + webpack + es6 + eslint。使用脚手架开发项目的特点:模块化、组件化、工程化。

React脚手架的创建

创建React脚手架有很多,React官方推荐我们使用Create React App,当然还有以下常见脚手架

Next.js:如果你是在用 Node.js 构建服务端渲染的网站

Gatsby:如果你是在构建面向内容的静态网站

nwb:用于React应用程序、库和其他web npm模块的工具包

razzle:创建没有配置的服务器呈现的通用JavaScript应用程序

Neutrino:创建和构建零初始配置的现代JavaScript应用程序

Umijs:蚂蚁金服脚手架

Icejs:阿里巴巴脚手架

有些大厂会使用他们自身的脚手架,搭建他们公司的项目会更快,在这祝愿大家早日入驻大厂学习更多的React脚手架的知识吧,这里我就以官方推荐的脚手架讲解

全局安装创建

新建终端输入以下命令进行全局安装:

npm install -g create-react-app

创建完成后可能会出现以下问题,tar@2.2.2:此版本的tar不再受支持,将不会收到安全更新,请尽快升级。 这只是一个警告,这不是错误。 安装程序只是让您意识到 tar 包已过时,就是说你不管它也ok。

那么如何解决这个问题呢,网上一大堆都在说直接 npm i bar ,但貌似并没有实际效果。国外某小伙也遇到这个问题,如下:

ok,看看别人是这么针对这个问题进行回复的,别人是这样说的,只要你node和npm满足相应的版本后,使用如下命令进行安装即可,用npx进行安装也是官方推荐的,这个后面在说。

这个问题可能是create-react-app经常更新或者其它原因导致的,我们忽略这个警告,接着往下:

切换想创建项目的目录,在终端输入如下命令:

create-react-app 项目名称

npm start:执行开发模式,运行该项目

npm run build:执行生产模式,打包该项目

npm test:执行测试模式,测试该项目

npm run eject:将webpack相关文件暴露出来(React设置webpack文件隐藏,为了防止我们修改其文件导致项目不能运行,执行该命令,将隐藏文件显示且不能再将其隐藏了!!!)

创建完成,将该文件拖到编译器上,我这里是VScode,然后新建终端执行npm start启动项目即可

默认是创建React+JS的项目,如果想创建React+TypeScript的项目,执行如下命令即可。

create-react-app 项目名称 --template typescript
cd 项目名
npm start

npx安装创建(官方推荐)

npx:是一种在npm中安装工具,在 npm version >= 5.2.0 开始,自动安装了npx。目的是提升包内提供的命令行工具的使用体验。

npx create-react-app 是固定命令,create-react-app是React脚手架的名称。

npx 命令会帮助我们临时安装create-react-app包,然后初始化项目完成之后会自自动删掉,所以不需要全局安装create-react-app

新建终端执行如下命令进行安装:

npx create-react-app 项目名称

安装完成后操作过程和上文的全局安装一样,将创建好的react项目文件拖到编译器中新建终端执行 npm start 即可。

总结

1)安装react脚手架我个人还是推荐使用官方的npx进行安装,即按即用。

2)React的创建者Facebook也创建了一个类似于npm的包管理器 yarn ,yarn具有快速、可靠和安全的特点,我这里完全是用npm了,喜欢yarn的也可以去使用,直接cmd打开终端运行 npm install yarn -g 进行全局安装,以后使用yarn直接用yarn替换npm运行命令即可。

指定React版本安装

npx create-react-app my-app安装默认都是最新的版本,因为React18与React17的语法有些差别如果想使用React17的版本,需要我们指定版本,执行如下代码进行版本降级:

npm install react@17.x react-dom@17.x --save

注意:npm install 安装库@版本号 --save
17.x 表示的更新范围为>=17.0.0&&< 18.0.0
17.2.x 表示的更新范围为>=17.2.0&&< 17.3.0 

降级完成之后,对src下的入口文件index.js进行修改,如下:

import React from 'react'
import ReactDOM from 'react-dom'import App from './App'
// 18
// const root = ReactDOM.createRoot(document.getElementById('root'));
// root.render(
//   <React.StrictMode>
//     <App />
//   </React.StrictMode>
// );// 17
ReactDOM.render(<React.StrictMode><App /></React.StrictMode>,document.getElementById('root')
)

脚手架文件介绍

public文件夹下有如下文件,用于存放静态资源类似图片、logo之类的东西。

在public中最重要的文件就是index.html,其相关文件说明如下(原本无关紧要的注释已经删掉了):

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8" /><!-- %PUBLIC_URL%代表public文件夹的路径 --><link rel="icon" href="%PUBLIC_URL%/favicon.ico" /><!-- 开启理想端口,用于做移动端页面的适配 --><meta name="viewport" content="width=device-width, initial-scale=1" /><!-- 用于配置浏览器页签+地址栏的颜色(仅支持安卓手机浏览器,兼容性较差,可能有的手机并没有效果) --><meta name="theme-color" content="#000000" /><metaname="description"content="Web site created using create-react-app"/><!-- 用于指定网页添加到手机主屏幕后的图标 --><link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /><!-- 应用加壳时的配置文件 --><link rel="manifest" href="%PUBLIC_URL%/manifest.json" /><title>React App</title></head><body><!-- 若浏览器不支持js,则展示标签中的内容 --><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body>
</html>

ok,具体文件功能介绍完,我们实现一个简单的小案例:Hello React 吧。


http://www.ppmy.cn/news/12428.html

相关文章

结构分析软件:2D Frame Analysis 7.2.6 Crack

结构分析软件&#xff1a;2D Frame Analysis 7.2.6 用于在静态、动态、线性和非线性载荷下对框架、梁和桁架进行结构分析的软件工具。它包括静态版和桁架版的所有功能 2D 框架分析软件套件以及处理动态负载的能力。自动计算结构的动态模态&#xff0c;并以图形方式表示相应的模…

Mybatis学习笔记(三)

连接池 我们在实际开发中都会使用连接池&#xff0c;因为它可以减少我们获取连接所消耗的时间 mybatis中的连接池 mybatis连接池提供了3种方式的配置 配置的位置 主配置文件SqlMapConfig.xml中的dataSource标签&#xff0c;type属性就是表示采用何种连接池方式 type属性的取…

你是真的“C”——详解C语言数组模块知识

详解C语言数组模块知识&#x1f60e;前言&#x1f64c;一维数组的创建和初始化&#x1f64c;1.1 数组的创建&#x1f49e;1.2 数组的初始化&#x1f49e;1.3 一维数组的使用&#x1f49e;1.4 一维数组在内存中的存储&#x1f49e;二维数组的创建和初始化&#x1f64c;1.1 二维数…

Java加解密(八)数字证书

目录数字证书1 定义2 证书组成结构3 公钥基础设施&#xff08;PKI&#xff09;3.1 PKI的组成3.2 PKI的相关标准3.3 信任模型4 证书的应用场景5 证书链6 生成证书6.1 通过CA生成可信证书6.1.1 国际权威认证机构6.1.2 生成CSR6.1.2.1 使用XCA生成CSR6.1.2.2 使用OpenSSL生成CSR6.…

用户登录、注册的简单案例: html+css+MyBatis+Servlet

用户登录一. 用户登录1. 流程与思路基本流程&#xff1a;详细过程&#xff1a;2. 准备环境建库建表Pojo实体类User&#xff1a;Maven坐标&#xff1a;mybatis核心配置文件&#xff1a;代理接口&#xff1a;3. 编写目录&#xff1a;HTML&#xff1a;Serlvet&#xff1a;4. 效果二…

《C++程序设计原理与实践》笔记 第10章 输入/输出流

在本章和下一章中&#xff0c;我们将介绍C标准库中用于处理来自各种源的输入和输出的功能&#xff1a;I/O流。本章关注基本模型&#xff1a;如何读写单个值&#xff0c;以及如何打开和读写整个文件。下一章将介绍具体细节。 10.1 输入和输出 如果没有数据&#xff0c;计算就毫…

Ai检测人员穿衣规范系统 opencv

Ai检测人员穿衣规范系统可以通过opencvyolo深度学习技术对现场画面中人员穿衣自动检测&#xff0c;发现现场人员未正确按要求穿衣进行抓拍留档。OpenCV可以在不同的系统平台上使用&#xff0c;包括Windows&#xff0c;Linux&#xff0c;OS&#xff0c;X&#xff0c;Android和iO…

Vue3商店后台管理系统设计文稿篇(四)

记录使用vscode构建Vue3商店后台管理系统&#xff0c;这是第四篇&#xff0c;主要记录使用git与vscode将代码同步提交到GitHub上面 文章目录一、Git与Github建立连接二、配置开发工具三、实用Git命令仓库相关命令分支相关命令正文内容&#xff1a; 一、Git与Github建立连接 使…