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

react install

react 安装

React 是一个用于构建用户界面的 JavaScript 库。以下是安装 React 的步骤:

使用 Create React App

Create React App 是一个官方支持的命令行工具,用于快速搭建 React 应用。

  1. 安装 Node.js 和 npm

    确保你的计算机上安装了 Node.js 和 npm。可以通过以下命令检查是否已安装:

    node -v
    npm -v
    

    如果未安装,可以到 Node.js 官网 下载并安装。

  2. 安装 Create React App 工具

    打开终端或命令提示符,运行以下命令:

    npm install -g create-react-app
    

    对于创建新的 React 应用,现在推荐使用以下几种更现代的方案:

    1. Vite(推荐)
    npm create vite@latest my-react-app -- --template react  
    
    1. Next.js(如果需要服务端渲染)
    npx create-next-app@latest my-react-app  
    

    这些方案比 create-react-app 有以下优势:

    • 更快的开发服务器启动时间
    • 更快的热模块替换(HMR)
    • 更小的安装包体积
    • 更现代的开发体验
  3. 创建一个新的 React 应用

    使用 Create React App 创建一个新的项目,把 my-app 替换为你的项目名称:

    create-react-app my-react-appnpx create-react-app@latest my-react-app
    
  4. 启动开发服务器

    进入项目目录并启动开发服务器:

    cd my-react-app
    npm start
    

    这将自动打开浏览器并访问 http://localhost:3000,你会看到默认的 React 页面。

手动安装 React

如果你想手动设置 React 开发环境,可以按照以下步骤操作:

  1. 创建项目目录并初始化 npm

    mkdir my-react-app
    cd my-react-app
    npm init -y
    
  2. 安装 React 和 ReactDOM

    npm install react react-dom
    
  3. 安装开发服务器和 Babel

    为支持 JSX 和现代 JavaScript 特性,你需要安装 Babel 和一个开发服务器:

    npm install @babel/preset-react @babel/preset-env babel-loader webpack webpack-cli webpack-dev-server
    
  4. 配置 Webpack 和 Babel

    创建 Webpack 和 Babel 配置文件(webpack.config.js.babelrc),以处理 JavaScript 和 JSX 文件。

    示例内容可以在网上找到,通常设置包含输入输出路径配置,插件,加载器设置等。

  5. 创建基础文件结构

    创建 src 目录并添加入口文件,比如 index.jsindex.html。在 index.js 中编写 React 代码并在 index.html 中提供一个容器,如 <div id="root"></div> 1 2

  6. 运行开发服务器

    修改 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 库可以帮助你更高效地构建应用。以下是一些流行的相关库:

  1. 状态管理

    • Redux: 复杂应用的状态管理
    • MobX: 简单、可扩展的状态管理
    • Recoil: Facebook 开发的状态管理库
    • Zustand: 轻量级状态管理库
  2. 路由

    • React Router: 最常用的 React 路由库
    • Reach Router: 轻量级的路由库
  3. 表单处理

    • Formik: 简化表单处理和验证
    • React Hook Form: 高性能、灵活的表单库
    • Final Form: 高性能的表单状态管理库
  4. UI 组件库

    • Material-UI: 实现 Google Material Design 的 React 组件
    • Ant Design: 企业级 UI 设计语言和 React 组件库
    • Chakra UI: 简单、模块化的组件库
    • React Bootstrap: Bootstrap 的 React 实现
    • Styled-components:使用现代 JavaScript 为组件定义样式的工具。
    • Emotion:一种可实现 CSS-in-JS 的库
  5. 数据获取

    • Axios: 基于 Promise 的 HTTP 客户端
    • SWR: 用于数据获取的 React Hooks 库
    • React Query: 强大的异步状态管理和数据获取库
  6. 动画

    • React Spring: 弹簧物理学动画库
    • Framer Motion: 生产就绪的动画和手势库
    • React Transition Group: 动画过渡组件
  7. 图表

    • Recharts: 基于 D3 的图表库
    • Victory: 模块化的图表库
    • React-Vis: 数据可视化组件
  8. 工具类

    • Lodash: 提供各种实用函数的工具库
    • Moment.js 或 Day.js: 日期处理库
    • Immer: 简化不可变状态更新
  9. 测试

    • Jest: JavaScript 测试框架
    • React Testing Library: React 组件测试工具
    • Enzyme: React 组件测试工具(较老但仍在使用)
  10. 开发工具

    • ESLint: JavaScript 代码检查工具
    • Prettier: 代码格式化工具
    • Storybook: UI 组件开发环境
  11. 国际化

    • react-i18next: 国际化框架
    • react-intl: React 的国际化库
  12. 性能优化

    • React.memo: React 内置的性能优化 API
    • useCallback 和 useMemo: React Hooks 用于性能优化
  13. 服务端渲染

    • Next.js: React 的服务端渲染框架
    • Gatsby: 静态站点生成器

这些库可以根据项目需求选择使用。在开始一个新项目时,建议仔细评估需求,选择适合的库,避免过度使用导致项目变得臃肿。同时,要注意保持依赖的版本更新,以获得最新的功能和安全修复。

在开发 React 应用程序时,经常会使用一些流行的 JavaScript 库和工具来增强功能、管理状态、路由和进行 API 操作等。这些是一些常见的 React 相关 JavaScript 库和工具:

  1. React Router

    • 用于在 React 应用中实现客户端路由。
    • 提供了动态路由、嵌套路由、路径参数等功能。
    • 官网: React Router
  2. Redux

    • 一种状态管理工具,用于管理复杂应用的状态。
    • 通过使用 actions 和 reducers 来实现全局状态管理。
    • Redux Toolkit 是官方推荐的 Redux 配套工具,提供更简单的 API 和开发体验。
    • 官网: Redux
  3. Axios

    • 基于 Promise 的 HTTP 客户端,用于执行异步 HTTP 请求(例如 GET, POST 等)。
    • 支持取消请求、请求和响应拦截器。
    • 官网: Axios GitHub
  4. styled-components

    • 允许在 React 应用中使用 CSS-in-JS 的方式编写样式。
    • 提供了更好的样式组件化和可复用性。
    • 官网: styled-components
  5. Formik

    • 用于构建和管理表单的库。
    • 简化了表单验证、处理和提交的流程。
    • 官网: Formik
  6. Yup

    • JavaScript 对象模式验证库,通常与 Formik 一起使用以实现表单验证。
    • 提供了声明式和可组合的验证规则。
    • 官网: Yup GitHub
  7. React Query

    • 提供数据获取、缓存、同步、更新和服务器状态管理功能。
    • 支持复杂的异步数据操作,适用于 RESTful 和 GraphQL。
    • 官网: React Query
  8. React Hook Form

    • 提供高性能、灵活和可扩展的表单管理。
    • 轻量级并支持验证、错误处理。
    • 官网: React Hook Form
  9. MobX

    • 另一种状态管理工具,使用响应式编程模型。
    • 提供更易于使用和直观的状态管理方式。
    • 官网: MobX
  10. Material-UI

    • 基于 Material Design 的 React UI 组件库。
    • 提供了丰富的、开箱即用的 UI 组件库。
    • 官网: Material-UI

这些库和工具可以根据项目需求和个人喜好选择使用,帮助你简化开发流程,提高代码的可维护性和扩展性。

在这里插入图片描述

参考:


  1. React.Component ↩︎

  2. React.Component ↩︎

相关文章:

react install

react 安装 React 是一个用于构建用户界面的 JavaScript 库。以下是安装 React 的步骤&#xff1a; 使用 Create React App Create React App 是一个官方支持的命令行工具&#xff0c;用于快速搭建 React 应用。 安装 Node.js 和 npm 确保你的计算机上安装了 Node.js 和 npm…...

ElasticSearch DSL查询之排序和分页

一、排序功能 1. 默认排序 在 Elasticsearch 中&#xff0c;默认情况下&#xff0c;查询结果是根据 相关度 评分&#xff08;score&#xff09;进行排序的。我们之前已经了解过&#xff0c;相关度评分是通过 Elasticsearch 根据查询条件与文档内容的匹配程度自动计算得出的。…...

uniapp封装websocket

WebSocket介绍 后端使用的是springbootnetty做websocket的服务端&#xff0c;参考我其他博文 项目使用场景 开发uniapp项目时&#xff0c;需要进行实时通信&#xff0c;比如聊天等。需要封装一个工具类&#xff0c;统一对socket进行管理。 uniapp websocket官方文档&#xff1…...

【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打开时&#xff0c;可以看到 public abstract class Flux<T> implements CorePublisher<T> { 2. public interface CorePublisher<T> extends Publisher<T> {void subscribe(CoreSubscriber<? super T> subscriber); } Publish…...

读西瓜书的数学准备

1&#xff0c;高等数学&#xff1a;会求偏导数就行 2&#xff0c;线性代数&#xff1a;会矩阵运算就行 参考&#xff1a;线性代数--矩阵基本计算&#xff08;加减乘法&#xff09;_矩阵运算-CSDN博客 3&#xff0c;概率论与数理统计&#xff1a;知道啥是随机变量就行...

摄像头模块如何应用在宠物产品领域

一、宠物监控类产品 家庭宠物远程监控摄像头 1.基本功能与原理&#xff1a;这类摄像头可以通过 Wi - Fi 连接到家庭网络&#xff0c;主人可以使用手机应用程序在任何有网络连接的地方查看宠物的实时画面。摄像头模块内置有图像传感器&#xff0c;能够捕捉光线并将其转换为数字…...

c++学习第七天

创作过程中难免有不足&#xff0c;若您发现本文内容有误&#xff0c;恳请不吝赐教。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考。 一、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)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&am…...

Open3D计算点云粗糙度(方法一)【2025最新版】

目录 一、Roughness二、代码实现三、结果展示博客长期更新,本文最近更新时间为:2025年1月18日。 一、Roughness 通过菜单栏的Tools > Other > Roughness找到该功能。 这个工具可以估计点云的“粗糙度”。 选择一个或几个点云,然后启动这个工具。 CloudCompare只会询问…...

算法6(力扣148)-排序链表

1、问题 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 2、采用例子 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 3、实现思路 将链表拆分成节点&#xff0c;存入数组使用sort排序&#xff0c;再用reduce重建链接 4、具…...

一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload以及webpackChunkName的使用

文章目录 一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload1. 建议按文章顺序从头看&#xff0c;一看到底&#xff0c;豁然开朗2. preload和prefetch的区别2. prefetch的使用3. preload的使用4. webpackChunkName 一文大白话讲清楚webpack基本使用——9——…...

【大数据2025】MapReduce

MapReduce 基础介绍 起源与发展&#xff1a;是 2004 年 10 月谷歌发表的 MAPREDUCE 论文的开源实现&#xff0c;最初用于大规模网页数据并行处理&#xff0c;现成为 Hadoop 核心子项目之一&#xff0c;是面向批处理的分布式计算框架。基本原理&#xff1a;分为 map 和 reduce …...

Windows图形界面(GUI)-QT-C/C++ - Qt List Widget详解与应用

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 QListWidget概述 使用场景 常见样式 QListWidget属性设置 显示方式 (Display) 交互行为 (Interaction) 高级功能 (Advanced) QListWidget常见操作 内容处理 增加项目 删除项目…...

深度学习python基础(第二节) 分支语句和循环语句

本节主要介绍分支语句和循环语句的基本语法。 注意&#xff1a;在python中的作用域以缩进为准。有语言基础的很好理解&#xff0c;了解语法格式就可以。 布尔类型和比较运算符 # 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代码&#xff0c;来看看最终得到的一颗路由树长啥样 func TestGinDocExp(t *testing.T) {engine : gin.Default()engine.GET("/api/user", f…...

第6章 ThreadGroup详细讲解(Java高并发编程详解:多线程与系统设计)

1.ThreadGroup 与 Thread 在Java程序中&#xff0c; 默认情况下&#xff0c; 新的线程都会被加入到main线程所在的group中&#xff0c; main线程的group名字同线程名。如同线程存在父子关系一样&#xff0c; Thread Group同样也存在父子关系。图6-1就很好地说明了父子thread、父…...

CentOS 7乱码问题如何解决?

1.使用超级用户操作: sudo su2.修改i18n配置文件&#xff1a; vi /etc/sysconfig/i18n将文件修改或添加为以下内容&#xff1a; LANG"zh_CN.UTF8" LC_ALL"zh_CN.UTF8"保存并退出&#xff08;按Esc键&#xff0c;输入:wq&#xff0c;然后回车&#xff09…...

JavaScript语言的多线程编程

JavaScript语言的多线程编程 JavaScript是一种广泛使用的编程语言&#xff0c;主要用于网页开发。由于其单线程的特性&#xff0c;JavaScript 一直以来都有“无法进行多线程编程”的印象。尽管如此&#xff0c;随着技术的发展&#xff0c;JavaScript也逐渐引入了多线程的概念&…...

四旋翼变形控制:RL与MPC在混合动力学中的对比

1. 四旋翼变形控制的技术挑战与解决方案四旋翼变形控制&#xff08;Quadrotor Morpho-Transition&#xff09;是当前机器人领域最具挑战性的前沿技术之一。这项技术使机器人能够在空中完成形态变换&#xff0c;实现从飞行模式到地面模式的平滑切换。想象一下&#xff0c;一架四…...

别再乱用分支了!Flowable四种网关(排他/并行/包容/事件)实战选型指南

Flowable四大网关实战选型&#xff1a;从混乱到精准的决策艺术当你在设计一个请假审批流程时&#xff0c;是否遇到过这样的困惑&#xff1a;部门经理审批后需要同时通知HR和财务&#xff0c;但某些特殊情况下又需要跳过财务直接归档&#xff1f;这种看似简单的业务需求&#xf…...

ARM指令追踪技术及TRCVICTLR寄存器详解

1. ARM指令追踪技术概述在嵌入式系统开发和调试过程中&#xff0c;指令追踪&#xff08;Instruction Trace&#xff09;是一项至关重要的技术。它通过硬件机制记录处理器的执行流程&#xff0c;为开发者提供程序运行的完整轨迹。ARM架构从v7开始引入嵌入式跟踪宏单元&#xff0…...

Python开发者首次使用Taotoken接入大模型API的完整步骤指南

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Python开发者首次使用Taotoken接入大模型API的完整步骤指南 对于Python开发者而言&#xff0c;接入大模型API进行应用开发已成为一…...

Unity主题系统设计:状态驱动的主题抽象与自动注入方案

1. 这不是换个颜色那么简单&#xff1a;为什么Unity项目里“换肤”总在发布前夜崩盘&#xff1f;你有没有经历过这样的场景&#xff1a;美术同学凌晨两点发来一套新主题资源包&#xff0c;UI设计师说“这次配色更符合品牌调性”&#xff0c;产品说“上线前必须支持深色模式”&a…...

从游戏引擎到仿真平台:手把手教你用AirSim+UE4搭建你的第一个无人机/自动驾驶仿真环境

从游戏引擎到仿真平台&#xff1a;构建AirSimUE4无人机与自动驾驶仿真环境实战指南当游戏引擎遇上机器人算法测试&#xff0c;会碰撞出怎样的火花&#xff1f;微软开源的AirSim项目将虚幻引擎&#xff08;Unreal Engine&#xff09;从游戏开发领域引入到自动驾驶和无人机研究的…...

武汉国电华美16875kVA串联谐振试验装置,这手活儿细

在超高压变电站和长距离电缆的现场&#xff0c;交流耐压试验是检验设备绝缘的“最后一关”。这位老师傅经手过不少大工程&#xff0c;他说&#xff0c;面对GIS、大型变压器这些“大块头”电容性试品&#xff0c;能不能顺利“过关”&#xff0c;往往就看串联谐振装置顶不顶得住。…...

收藏干货|2026 版企业 AI 落地实操指南,程序员小白入门避坑必备

如今人工智能早已脱离概念炒作阶段&#xff0c;全面扎根企业实际业务场景&#xff0c;成为技术从业者与企业管理者无法回避的发展课题。各行各业都加速布局AI赛道&#xff0c;行业心态也从初期观望试探&#xff0c;彻底转变为实打实的落地攻坚。 不少企业高层主动牵头统筹AI规划…...

如何快速上手Redux Dynamic Modules:5分钟完成Redux模块化改造

如何快速上手Redux Dynamic Modules&#xff1a;5分钟完成Redux模块化改造 【免费下载链接】redux-dynamic-modules Modularize Redux by dynamically loading reducers and middlewares. 项目地址: https://gitcode.com/gh_mirrors/re/redux-dynamic-modules Redux Dyn…...

WarcraftHelper:让经典魔兽争霸3完美适配现代电脑的终极解决方案

WarcraftHelper&#xff1a;让经典魔兽争霸3完美适配现代电脑的终极解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代操…...