React安装使用教程

一、React 简介

React 是由 Facebook 开发和维护的一个用于构建用户界面的 JavaScript 库,适用于构建复杂的单页应用(SPA)。它采用组件化、虚拟 DOM 和声明式编程等理念,已成为前端开发的主流选择。


二、React 安装方式

2.1 使用 CDN 引入(适合学习/演示)

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8" /><title>Hello React</title><script src="https://unpkg.com/react@18/umd/react.development.js"></script><script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script><script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body><div id="root"></div><script type="text/babel">const App = () => <h1>Hello, React!</h1>;ReactDOM.createRoot(document.getElementById('root')).render(<App />);</script>
</body>
</html>

2.2 使用 Create React App(推荐)

安装 Node.js

访问 https://nodejs.org/ 安装最新 LTS 版本。

安装并创建项目
npm install -g create-react-app
create-react-app my-app
cd my-app
npm start

浏览器访问:http://localhost:3000


2.3 使用 Vite 创建 React 项目(更快)

npm create vite@latest my-react-app -- --template react
cd my-react-app
npm install
npm run dev

三、React 项目结构说明

my-app/
├── public/
├── src/
│   ├── App.js
│   ├── index.js
│   └── components/
├── package.json
└── README.md

四、React 基本语法示例

function App() {const [count, setCount] = React.useState(0);return (<div><h1>Hello, React!</h1><p>当前计数:{count}</p><button onClick={() => setCount(count + 1)}>加一</button></div>);
}
// index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);

五、核心特性简介

特性说明
组件化UI 拆分为多个组件
JSXJavaScript + XML 语法
HooksReact 16.8+ 状态管理 API(如 useState)
虚拟 DOM高效更新界面
单向数据流父组件向子组件传递数据

六、常用 Hooks 示例

import React, { useState, useEffect } from 'react';function Timer() {const [seconds, setSeconds] = useState(0);useEffect(() => {const timer = setInterval(() => setSeconds(s => s + 1), 1000);return () => clearInterval(timer);}, []);return <div>已运行:{seconds}</div>;
}

七、常见问题

Q1: JSX 报错?

  • 确保使用 Babel 编译 JSX 或通过 Create React App/Vite 搭建项目

Q2: 项目无法启动?

  • 使用 npm install 安装依赖
  • 检查端口冲突,或使用 npm start -- --port=8080

八、推荐开发工具

  • VS Code(主流编辑器,搭配 ESLint/Prettier 插件)
  • React Developer Tools(浏览器插件)

九、学习资源推荐

  • React 官网
  • React 中文文档
  • 菜鸟教程 React
  • MDN React 入门

本文由“小奇Java面试”原创发布,转载请注明出处。

可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

在这里插入图片描述

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

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

相关文章

.NET MAUI跨平台串口通讯方案

文章目录 MAUI项目架构设计平台特定实现接口定义Windows平台实现Android平台实现 MAUI主界面实现依赖注入配置相关学习资源.NET MAUI开发移动端开发平台特定实现依赖注入与架构移动应用发布跨平台开发最佳实践性能优化测试与调试开源项目参考 MAUI项目架构设计 #mermaid-svg-OG…

BUUCTF在线评测-练习场-WebCTF习题[MRCTF2020]你传你[特殊字符]呢1-flag获取、解析

解题思路 打开靶场&#xff0c;左边是艾克&#xff0c;右边是诗人&#xff0c;下面有个文件上传按钮 结合题目&#xff0c;是一个文件上传漏洞&#xff0c;一键去世看源码可知是提交按钮&#xff0c;先上传个一句话木马.php试试 <?php eval($_POST[shell]); ?> 被过…

【容器】容器平台初探 - k8s整体架构

目录 K8s总揽 K8s主要组件 组件说明 一、Master组件 二、WokerNode组件 K8s是Kubernetes的简称&#xff0c;它是Google的开源容器集群管理系统&#xff0c;其提供应用部署、维护、扩展机制等功能&#xff0c;利用k8s能很方便地管理跨机器运行容器化的应用。 K8s总揽 K8s主…

C++--继承

文章目录 继承1. 继承的概念及定义1.1 继承的概念1.2 继承的定义1.2.1 定义格式1.2.2 继承方式和访问限定符1.2.3 继承基类成员访问方式的变化1.2.3.1 基类成员访问方式的变化规则1.2.3.2 默认继承方式 1.3 继承类模版 2. 基类和派生类的转化3. 继承中的作用域3.1 隐藏3.2 经典…

无REPOSITORY、TAG的docker悬空镜像究竟是什么?是否可删除?

有时候&#xff0c;使用docker images指令我们可以发现大量的无REPOSITORY、TAG的docker镜像&#xff0c;这些镜像究竟是什么&#xff1f; 它们没有REPOSITORY、TAG名称&#xff0c;没有办法引用&#xff0c;那么它们还有什么用&#xff1f; [rootcdh-100 data]# docker image…

创建一个基于YOLOv8+PyQt界面的驾驶员疲劳驾驶检测系统 实现对驾驶员疲劳状态的打哈欠检测,头部下垂 疲劳眼睛检测识别

如何使用Yolov8创建一个基于YOLOv8的驾驶员疲劳驾驶检测系统 文章目录 1. 数据集准备2. 安装依赖3. 创建PyQt界面4. 模型训练1. 数据集准备2. 模型训练数据集配置文件 (data.yaml)训练脚本 (train.py) 3. PyQt界面开发主程序 (MainProgram.py) 4. 运行项目5. 关键代码解释数据集…

使用FFmpeg将YUV编码为H.264并封装为MP4,通过api接口实现

YUV数据来源 摄像头直接采集的原始视频流通常为YUV格式&#xff08;如YUV420&#xff09;&#xff0c;尤其是安防摄像头和网络摄像头智能手机、平板电脑的摄像头通过硬件接口视频会议软件&#xff08;如Zoom、腾讯会议&#xff09;从摄像头捕获YUV帧&#xff0c;进行预处理&am…

tcpdump工具交叉编译

本文默认系统已经安装了交叉工具链环境。 下载相关版本源码 涉及tcpdump源码&#xff0c;以及tcpdump编译过程依赖的pcap库源码。 网站&#xff1a;http://www.tcpdump.org/release wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz wget http://www.tcpdump.org/r…

神经网络中torch.nn的使用

卷积层 通过卷积核&#xff08;滤波器&#xff09;在输入数据上滑动&#xff0c;卷积层能够自动检测和提取局部特征&#xff0c;如边缘、纹理、颜色等。不同的卷积核可以捕捉不同类型的特征。 nn.conv2d() in_channels:输入的通道数&#xff0c;彩色图片一般为3通道 out_c…

在MATLAB中使用GPU加速计算及多GPU配置

文章目录 在MATLAB中使用GPU加速计算及多GPU配置一、基本GPU加速使用1. 检查GPU可用性2. 将数据传输到GPU3. 执行GPU计算 二、多GPU配置与使用1. 选择特定GPU设备2. 并行计算工具箱中的多GPU支持3. 数据并行处理&#xff08;适用于深度学习&#xff09; 三、高级技巧1. 异步计算…

【unitrix】 4.12 通用2D仿射变换矩阵(matrix/types.rs)

一、源码 这段代码定义了一个通用的2D仿射变换矩阵结构&#xff0c;可用于表示二维空间中的各种线性变换。 /// 通用2D仿射变换矩阵&#xff08;元素仅需实现Copy trait&#xff09; /// /// 该矩阵可用于表示二维空间中的任意仿射变换&#xff0c;支持以下应用场景&#xff…

android RecyclerView隐藏整个Item后,该Item还占位留白问题

前言 android RecyclerView隐藏整个Item后,该Item还占位留白问题 思考了利用隐藏和现实来控制item 结果实现不了方案 解决方案 要依据 model 的第三个参数&#xff08;布尔值&#xff09;决定是否保留数据&#xff0c;可以通过 ​filter 高阶函数结合 ​空安全操作符​ 实…

地图瓦片介绍与地图瓦片编程下载

前沿 地图瓦片指将一定范围内的地图按照一定的尺寸和格式&#xff0c;按缩放级别或者比例尺&#xff0c;切成若干行和列的正方形栅格图片&#xff0c;对切片后的正方形栅格图片被形象的称为瓦片[。瓦片通常应用于B/S软件架构下&#xff0c;浏览器从服务器获取地图数据&#xf…

手机屏亮点缺陷修复及相关液晶线路激光修复原理

摘要 手机屏亮点缺陷严重影响显示品质&#xff0c;液晶线路短路、电压异常是导致亮点的关键因素。激光修复技术凭借高能量密度与精准操控性&#xff0c;可有效修复液晶线路故障&#xff0c;消除亮点缺陷。本文分析亮点缺陷成因&#xff0c;深入探究液晶线路激光修复原理、工艺…

MySQL数据一键同步至ClickHouse数据库

随着数据量的爆炸式增长和业务场景的多样化&#xff0c;传统数据库系统如MySQL虽然稳定可靠&#xff0c;但在海量数据分析场景下逐渐显露出性能瓶颈。这时&#xff0c;ClickHouse凭借其列式存储架构和卓越的OLAP&#xff08;在线分析处理&#xff09;能力脱颖而出&#xff0c;成…

Android中Compose常用组件以及布局使用方法

一、基础控件详解 1. Text - 文本控件 Text(text "Hello Compose", // 必填&#xff0c;显示文本color Color.Blue, // 文字颜色fontSize 24.sp, // 字体大小&#xff08;注意使用.sp单位&#xff09;fontStyle FontStyle.Italic, // 字体样式&…

SCI一区黑翅鸢优化算法+三模型光伏功率预测对比!BKA-CNN-GRU、CNN-GRU、GRU三模型多变量时间序列预测

SCI一区黑翅鸢优化算法三模型光伏功率预测对比&#xff01;BKA-CNN-GRU、CNN-GRU、GRU三模型多变量时间序列预测 目录 SCI一区黑翅鸢优化算法三模型光伏功率预测对比&#xff01;BKA-CNN-GRU、CNN-GRU、GRU三模型多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 …

创客匠人视角:创始人 IP 打造为何成为知识变现的核心竞争力

在互联网流量成本高企的当下&#xff0c;知识变现行业正经历从 “产品竞争” 到 “IP 竞争” 的范式迁移。创客匠人 CEO 老蒋指出&#xff0c;创始人 IP 已成为企业突破增长瓶颈的关键支点 —— 美特斯邦威创始人周成建首次直播即创下 1500 万元成交额&#xff0c;印证了创始人…

类图+案例+代码详解:软件设计模式----生成器模式(建造者模式)

生成器模式&#xff08;建造者模式&#xff09; 把复杂对象的建造过程和表示分离&#xff0c;让同样的建造过程可以创建不同的表示。 假设你去快餐店买汉堡&#xff0c;汉堡由面包、肉饼、蔬菜、酱料等部分组成。 建造者模式的角色类比&#xff1a; 产品&#xff08;Product…

UI前端与数字孪生融合探索:为智慧物流提供可视化解决方案

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在全球供应链数字化转型的浪潮中&#xff0c;智慧物流正从概念走向落地 —— 据 MarketsandMa…