react install
react 安装
React 是一个用于构建用户界面的 JavaScript 库。以下是安装 React 的步骤:
使用 Create React App
Create React App 是一个官方支持的命令行工具,用于快速搭建 React 应用。
-
安装 Node.js 和 npm
确保你的计算机上安装了 Node.js 和 npm。可以通过以下命令检查是否已安装:
node -v npm -v如果未安装,可以到 Node.js 官网 下载并安装。
-
安装 Create React App 工具
打开终端或命令提示符,运行以下命令:
npm install -g create-react-app对于创建新的 React 应用,现在推荐使用以下几种更现代的方案:
- Vite(推荐):
npm create vite@latest my-react-app -- --template react- Next.js(如果需要服务端渲染):
npx create-next-app@latest my-react-app这些方案比 create-react-app 有以下优势:
- 更快的开发服务器启动时间
- 更快的热模块替换(HMR)
- 更小的安装包体积
- 更现代的开发体验
-
创建一个新的 React 应用
使用 Create React App 创建一个新的项目,把
my-app替换为你的项目名称:create-react-app my-react-appnpx create-react-app@latest my-react-app -
启动开发服务器
进入项目目录并启动开发服务器:
cd my-react-app npm start这将自动打开浏览器并访问
http://localhost:3000,你会看到默认的 React 页面。
手动安装 React
如果你想手动设置 React 开发环境,可以按照以下步骤操作:
-
创建项目目录并初始化 npm
mkdir my-react-app cd my-react-app npm init -y -
安装 React 和 ReactDOM
npm install react react-dom -
安装开发服务器和 Babel
为支持 JSX 和现代 JavaScript 特性,你需要安装 Babel 和一个开发服务器:
npm install @babel/preset-react @babel/preset-env babel-loader webpack webpack-cli webpack-dev-server -
配置 Webpack 和 Babel
创建 Webpack 和 Babel 配置文件(
webpack.config.js和.babelrc),以处理 JavaScript 和 JSX 文件。示例内容可以在网上找到,通常设置包含输入输出路径配置,插件,加载器设置等。
-
创建基础文件结构
创建
src目录并添加入口文件,比如index.js和index.html。在index.js中编写 React 代码并在index.html中提供一个容器,如<div id="root"></div>1 2。 -
运行开发服务器
修改
package.json中的scripts部分,添加启动命令:"scripts": {"start": "webpack serve --mode development" }然后运行:
npm start
以上是 React 安装的基本步骤。根据需要,安装和配置其他包和工具以补充你的开发环境,例如 Redux, React Router 等。
相关js 库
- react.js:React 核心库。
- react-dom.js:提供操作 DOM 的react 扩展库。
- babel.min.js:解析JSX 语法代码转为JS 代码的库。
在 React 开发中,有许多常用的 JavaScript 库可以帮助你更高效地构建应用。以下是一些流行的相关库:
-
状态管理
- Redux: 复杂应用的状态管理
- MobX: 简单、可扩展的状态管理
- Recoil: Facebook 开发的状态管理库
- Zustand: 轻量级状态管理库
-
路由
- React Router: 最常用的 React 路由库
- Reach Router: 轻量级的路由库
-
表单处理
- Formik: 简化表单处理和验证
- React Hook Form: 高性能、灵活的表单库
- Final Form: 高性能的表单状态管理库
-
UI 组件库
- Material-UI: 实现 Google Material Design 的 React 组件
- Ant Design: 企业级 UI 设计语言和 React 组件库
- Chakra UI: 简单、模块化的组件库
- React Bootstrap: Bootstrap 的 React 实现
- Styled-components:使用现代 JavaScript 为组件定义样式的工具。
- Emotion:一种可实现 CSS-in-JS 的库
-
数据获取
- Axios: 基于 Promise 的 HTTP 客户端
- SWR: 用于数据获取的 React Hooks 库
- React Query: 强大的异步状态管理和数据获取库
-
动画
- React Spring: 弹簧物理学动画库
- Framer Motion: 生产就绪的动画和手势库
- React Transition Group: 动画过渡组件
-
图表
- Recharts: 基于 D3 的图表库
- Victory: 模块化的图表库
- React-Vis: 数据可视化组件
-
工具类
- Lodash: 提供各种实用函数的工具库
- Moment.js 或 Day.js: 日期处理库
- Immer: 简化不可变状态更新
-
测试
- Jest: JavaScript 测试框架
- React Testing Library: React 组件测试工具
- Enzyme: React 组件测试工具(较老但仍在使用)
-
开发工具
- ESLint: JavaScript 代码检查工具
- Prettier: 代码格式化工具
- Storybook: UI 组件开发环境
-
国际化
- react-i18next: 国际化框架
- react-intl: React 的国际化库
-
性能优化
- React.memo: React 内置的性能优化 API
- useCallback 和 useMemo: React Hooks 用于性能优化
-
服务端渲染
- Next.js: React 的服务端渲染框架
- Gatsby: 静态站点生成器
这些库可以根据项目需求选择使用。在开始一个新项目时,建议仔细评估需求,选择适合的库,避免过度使用导致项目变得臃肿。同时,要注意保持依赖的版本更新,以获得最新的功能和安全修复。
在开发 React 应用程序时,经常会使用一些流行的 JavaScript 库和工具来增强功能、管理状态、路由和进行 API 操作等。这些是一些常见的 React 相关 JavaScript 库和工具:
-
React Router
- 用于在 React 应用中实现客户端路由。
- 提供了动态路由、嵌套路由、路径参数等功能。
- 官网: React Router
-
Redux
- 一种状态管理工具,用于管理复杂应用的状态。
- 通过使用 actions 和 reducers 来实现全局状态管理。
- Redux Toolkit 是官方推荐的 Redux 配套工具,提供更简单的 API 和开发体验。
- 官网: Redux
-
Axios
- 基于 Promise 的 HTTP 客户端,用于执行异步 HTTP 请求(例如 GET, POST 等)。
- 支持取消请求、请求和响应拦截器。
- 官网: Axios GitHub
-
styled-components
- 允许在 React 应用中使用 CSS-in-JS 的方式编写样式。
- 提供了更好的样式组件化和可复用性。
- 官网: styled-components
-
Formik
- 用于构建和管理表单的库。
- 简化了表单验证、处理和提交的流程。
- 官网: Formik
-
Yup
- JavaScript 对象模式验证库,通常与 Formik 一起使用以实现表单验证。
- 提供了声明式和可组合的验证规则。
- 官网: Yup GitHub
-
React Query
- 提供数据获取、缓存、同步、更新和服务器状态管理功能。
- 支持复杂的异步数据操作,适用于 RESTful 和 GraphQL。
- 官网: React Query
-
React Hook Form
- 提供高性能、灵活和可扩展的表单管理。
- 轻量级并支持验证、错误处理。
- 官网: React Hook Form
-
MobX
- 另一种状态管理工具,使用响应式编程模型。
- 提供更易于使用和直观的状态管理方式。
- 官网: MobX
-
Material-UI
- 基于 Material Design 的 React UI 组件库。
- 提供了丰富的、开箱即用的 UI 组件库。
- 官网: Material-UI
这些库和工具可以根据项目需求和个人喜好选择使用,帮助你简化开发流程,提高代码的可维护性和扩展性。

参考:
React.Component ↩︎
React.Component ↩︎
相关文章:
react install
react 安装 React 是一个用于构建用户界面的 JavaScript 库。以下是安装 React 的步骤: 使用 Create React App Create React App 是一个官方支持的命令行工具,用于快速搭建 React 应用。 安装 Node.js 和 npm 确保你的计算机上安装了 Node.js 和 npm…...
ElasticSearch DSL查询之排序和分页
一、排序功能 1. 默认排序 在 Elasticsearch 中,默认情况下,查询结果是根据 相关度 评分(score)进行排序的。我们之前已经了解过,相关度评分是通过 Elasticsearch 根据查询条件与文档内容的匹配程度自动计算得出的。…...
uniapp封装websocket
WebSocket介绍 后端使用的是springbootnetty做websocket的服务端,参考我其他博文 项目使用场景 开发uniapp项目时,需要进行实时通信,比如聊天等。需要封装一个工具类,统一对socket进行管理。 uniapp websocket官方文档࿱…...
【Linux】18.Linux进程控制(2)
文章目录 3. 进程程序替换3.1 单进程版 -- 看看程序替换3.2 替换原理3.3 替换函数函数解释命名理解 3.4 多进程版 -- 验证各种程序替换接口3.5 自定义shell 3. 进程程序替换 3.1 单进程版 – 看看程序替换 makefile mycommand:mycommand.cgcc -o $ $^ -stdc99 .PHONY:clean …...
reactor框架使用时,数据流请求流程
1. 我们在Flux打开时,可以看到 public abstract class Flux<T> implements CorePublisher<T> { 2. public interface CorePublisher<T> extends Publisher<T> {void subscribe(CoreSubscriber<? super T> subscriber); } Publish…...
读西瓜书的数学准备
1,高等数学:会求偏导数就行 2,线性代数:会矩阵运算就行 参考:线性代数--矩阵基本计算(加减乘法)_矩阵运算-CSDN博客 3,概率论与数理统计:知道啥是随机变量就行...
摄像头模块如何应用在宠物产品领域
一、宠物监控类产品 家庭宠物远程监控摄像头 1.基本功能与原理:这类摄像头可以通过 Wi - Fi 连接到家庭网络,主人可以使用手机应用程序在任何有网络连接的地方查看宠物的实时画面。摄像头模块内置有图像传感器,能够捕捉光线并将其转换为数字…...
c++学习第七天
创作过程中难免有不足,若您发现本文内容有误,恳请不吝赐教。 提示:以下是本篇文章正文内容,下面案例可供参考。 一、const成员函数 //Date.h#pragma once#include<iostream> using namespace std;class Date { public:Date…...
Ubuntu 24.04 LTS 通过 docker 安装 nextcloud 搭建个人网盘
准备 Ubuntu 24.04 LTSUbuntu 空闲硬盘挂载Ubuntu 安装 Docker DesktopUbuntu 24.04 LTS 安装 tailscale [我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。 安装 nextcloud 参考 Ubuntu24.04系统Docker安装NextcloudOnlyoffice _。 更…...
RabbitMQ1-消息队列
目录 MQ的相关概念 什么是MQ 为什么要用MQ MQ的分类 MQ的选择 RabbitMQ RabbitMQ的概念 四大核心概念 RabbitMQ的核心部分 各个名词介绍 MQ的相关概念 什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出&am…...
Open3D计算点云粗糙度(方法一)【2025最新版】
目录 一、Roughness二、代码实现三、结果展示博客长期更新,本文最近更新时间为:2025年1月18日。 一、Roughness 通过菜单栏的Tools > Other > Roughness找到该功能。 这个工具可以估计点云的“粗糙度”。 选择一个或几个点云,然后启动这个工具。 CloudCompare只会询问…...
算法6(力扣148)-排序链表
1、问题 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 2、采用例子 输入:head [4,2,1,3] 输出:[1,2,3,4] 3、实现思路 将链表拆分成节点,存入数组使用sort排序,再用reduce重建链接 4、具…...
一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload以及webpackChunkName的使用
文章目录 一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload1. 建议按文章顺序从头看,一看到底,豁然开朗2. preload和prefetch的区别2. prefetch的使用3. preload的使用4. webpackChunkName 一文大白话讲清楚webpack基本使用——9——…...
【大数据2025】MapReduce
MapReduce 基础介绍 起源与发展:是 2004 年 10 月谷歌发表的 MAPREDUCE 论文的开源实现,最初用于大规模网页数据并行处理,现成为 Hadoop 核心子项目之一,是面向批处理的分布式计算框架。基本原理:分为 map 和 reduce …...
Windows图形界面(GUI)-QT-C/C++ - Qt List Widget详解与应用
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 QListWidget概述 使用场景 常见样式 QListWidget属性设置 显示方式 (Display) 交互行为 (Interaction) 高级功能 (Advanced) QListWidget常见操作 内容处理 增加项目 删除项目…...
深度学习python基础(第二节) 分支语句和循环语句
本节主要介绍分支语句和循环语句的基本语法。 注意:在python中的作用域以缩进为准。有语言基础的很好理解,了解语法格式就可以。 布尔类型和比较运算符 # True真,False假 a True print(f"布尔变量a的内容是:{a},类型是:{type(a)}") 比较运算…...
Gin 源码概览 - 路由
本文基于gin 1.1 源码解读 https://github.com/gin-gonic/gin/archive/refs/tags/v1.1.zip 1. 注册路由 我们先来看一段gin代码,来看看最终得到的一颗路由树长啥样 func TestGinDocExp(t *testing.T) {engine : gin.Default()engine.GET("/api/user", f…...
第6章 ThreadGroup详细讲解(Java高并发编程详解:多线程与系统设计)
1.ThreadGroup 与 Thread 在Java程序中, 默认情况下, 新的线程都会被加入到main线程所在的group中, main线程的group名字同线程名。如同线程存在父子关系一样, Thread Group同样也存在父子关系。图6-1就很好地说明了父子thread、父…...
CentOS 7乱码问题如何解决?
1.使用超级用户操作: sudo su2.修改i18n配置文件: vi /etc/sysconfig/i18n将文件修改或添加为以下内容: LANG"zh_CN.UTF8" LC_ALL"zh_CN.UTF8"保存并退出(按Esc键,输入:wq,然后回车)…...
JavaScript语言的多线程编程
JavaScript语言的多线程编程 JavaScript是一种广泛使用的编程语言,主要用于网页开发。由于其单线程的特性,JavaScript 一直以来都有“无法进行多线程编程”的印象。尽管如此,随着技术的发展,JavaScript也逐渐引入了多线程的概念&…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
