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

React入门教程:创建你的第一个React应用

React 是由 Facebook 开发的用于构建用户界面的 JavaScript 库。它以其高效、灵活和组件化的特性受到开发者的广泛欢迎。如果你是前端开发新手,或是从其他框架转向 React,这篇文章将引导你创建一个简单的 React 应用,帮助你快速上手。

1. 环境准备

在开始之前,确保你的开发环境已经安装了以下工具:

  • Node.js 和 npm: React 依赖于 Node.js 环境,并且 npm 是 Node.js 的包管理工具。你可以从 Node.js 官方网站 下载并安装。
  • 代码编辑器: 推荐使用 VS Code,但你也可以选择自己喜欢的编辑器。

你可以通过以下命令检查是否已经安装了 Node.js 和 npm:

node -v
npm -v
2. 创建一个 React 项目

npm 版本 5.2.0 及以上内置的工具可以不用自行安装Create React App,否则需要
npm install -g create-react-app

我们将使用 Create React App 脚手架工具来快速生成一个 React 项目。这是官方推荐的方式,能够帮助你快速创建一个开发环境,并包括所有必要的工具链。

在终端中运行以下命令来创建一个新的 React 项目:

npx create-react-app my-first-react-app

这将会生成一个名为 my-first-react-app 的目录,并且这个目录中包含了一个完整的 React 项目结构。接着,进入到这个目录:

cd my-first-react-app

然后,通过以下命令启动开发服务器:

npm start

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

3. 了解项目结构

my-first-react-app 目录下,你会看到如下的项目结构:

  • node_modules/: 存放所有项目依赖的模块。
  • public/: 包含公共资源,如 HTML 文件和静态资源。
  • src/: 主要的开发目录,包含你的 React 组件和其他源代码文件。
  • package.json: 项目的配置文件,包含项目依赖、脚本等信息。

其中,src 目录是你开发的主要区域。默认情况下,src 目录下的 App.js 是主组件文件。

4. 创建你的第一个组件

接下来,我们将在 src 目录下创建一个简单的 React 组件,并将其展示在页面上。

首先,打开 src/App.js 文件,并将默认的内容替换为以下代码:

import React from 'react';
import './App.css';function App() {return (<div className="App"><header className="App-header"><h1>Welcome to My First React App!</h1><p>This is a simple React component.</p></header></div>);
}export default App;

在这个例子中,我们创建了一个名为 App 的函数组件。组件的返回值是一个 JSX 结构,描述了组件的 UI。JSX 是一种类似 HTML 的语法,用于描述 UI 结构,它最终会被编译成 JavaScript。

你可以通过编辑 h1 标签中的内容来修改页面显示的标题。

5. 了解组件和状态

React 组件可以是有状态的或者无状态的。状态是一个组件内的数据源,当状态发生变化时,React 会自动重新渲染组件,以反映最新的状态。

以下是一个简单的示例,我们将向 App 组件中添加一个按钮,点击按钮后改变组件的状态并更新页面显示的内容。

修改 App.js 文件:

import React, { useState } from 'react';
import './App.css';function App() {const [message, setMessage] = useState('This is a simple React component.');const handleClick = () => {setMessage('You just clicked the button!');};return (<div className="App"><header className="App-header"><h1>Welcome to My First React App!</h1><p>{message}</p><button onClick={handleClick}>Click Me!</button></header></div>);
}export default App;

在上面的代码中,我们使用了 React 的 useState 钩子来创建组件的状态。useState 返回一个数组,其中第一个值是状态变量,第二个值是更新状态的函数。当点击按钮时,handleClick 函数被调用,进而调用 setMessage 更新状态,这时页面会重新渲染并显示新的消息。

6. 添加样式

React 支持多种方式来为组件添加样式。你可以直接在组件中内联样式,也可以导入外部的 CSS 文件。

App.js 文件中,我们已经导入了 ./App.css 文件。接下来,我们可以在 src/App.css 中定义样式:

.App-header {background-color: #282c34;min-height: 100vh;display: flex;flex-direction: column;align-items: center;justify-content: center;font-size: calc(10px + 2vmin);color: white;
}button {font-size: 1rem;padding: 10px 20px;color: #61dafb;background-color: #282c34;border: 2px solid #61dafb;cursor: pointer;margin-top: 20px;
}button:hover {background-color: #61dafb;color: #282c34;
}

保存文件后,你会看到按钮和文本的样式已经发生变化。

7. 构建和部署

当你完成了 React 应用的开发,下一步就是将其构建并部署到生产环境。

你可以使用以下命令构建项目:

npm run build

这会生成一个 build 目录,其中包含优化后的生产环境代码。你可以将该目录中的内容部署到任何静态文件服务器或内容交付网络(CDN)上。

8. 总结

通过这篇文章,你已经创建了一个简单的 React 应用,并且学习了如何构建组件、管理状态、添加样式,以及最终构建和部署应用。React 的核心思想是通过组件化的方式来构建用户界面,使开发变得更加高效和灵活。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SSM+Ajax实现广告系统
  • ICM20948 DMP代码详解(6)
  • SLT—List详解
  • 【2024高教社杯全国大学生数学建模竞赛】B题模型建立求解
  • 最新OpenStreetMap POI数据(附下载教程)
  • ctfshow-web入门-sql注入(web237-web240)insert 注入
  • Elasticsearch的使用
  • 【C++模版初阶】——我与C++的不解之缘(七)
  • 舒适度和音质再升级,南卡OE Pro2以标杆级实力,体验革命性提升!
  • 【VB6|第27期】如何在VB6中使用Shell函数实现同步执行
  • USB通信协议基础概念
  • ROADM(可重构光分插复用器)-介绍
  • YOLOv5: 从0开始搭建环境进行模型训练
  • 传统CV算法——基于Opencv的多目标追踪算法
  • 【盖世汽车-注册安全分析报告】
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android优雅地处理按钮重复点击
  • canvas 五子棋游戏
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • js如何打印object对象
  • node和express搭建代理服务器(源码)
  • React16时代,该用什么姿势写 React ?
  • tensorflow学习笔记3——MNIST应用篇
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vim 折腾记
  • Vue官网教程学习过程中值得记录的一些事情
  • 从零搭建Koa2 Server
  • 从输入URL到页面加载发生了什么
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 缓存与缓冲
  • 通信类
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 在Docker Swarm上部署Apache Storm:第1部分
  • scrapy中间件源码分析及常用中间件大全
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (1)常见O(n^2)排序算法解析
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (笔记)M1使用hombrew安装qemu
  • (四)c52学习之旅-流水LED灯
  • (四)事件系统
  • (算法)Travel Information Center
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET 回调、接口回调、 委托
  • .Net7 环境安装配置
  • .NET中分布式服务
  • .net专家(张羿专栏)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)