【详细讲解React 快速入门教程】

在这里插入图片描述

🔥博主:程序员不想YY啊🔥
💫CSDN优质创作者,CSDN实力新星,CSDN博客专家💫
🤗点赞🎈收藏⭐再看💫养成习惯
🌈希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!🌈

React

  • 0. 前言
  • 1. 环境准备
  • 2. 创建一个新的 React 应用
  • 3. 了解项目结构
  • 4. 编辑 App 组件
  • 5. JSX 语法
  • 6. 组件和 Props
  • 7. State 和生命周期
  • 8. 使用 Hooks
  • 9. 测试你的组件
  • 10. 部署你的应用

0. 前言

React是一个用于构建用户界面的 JavaScript 库,由 Facebook 发起并开源,下面是一个简要的 React 快速入门教程,帮助你开始使用这个强大工具:

1. 环境准备

在开始之前,请确保你已经安装了 Node.js 和 npm (Node.js 的包管理器)。你可以在 nodejs.org 上下载安装最新版的 Node.js,它通常包含 npm。

2. 创建一个新的 React 应用

使用 create-react-app 可以快速生成一个新的 React 应用。打开你的终端(命令行工具),然后输入:

npx create-react-app my-react-app
cd my-react-app
npm start

这会创建一个名为 my-react-app 的新目录,其中包含所有的初始文件,并启动一个开发服务器,然后在浏览器中打开你的新应用。

3. 了解项目结构

my-react-app 文件夹中,你会看到以下重要的文件和文件夹:

  • 💫public/index.html: 这是你的应用的主 HTML 文件。
  • 💫src/index.js: 这是 React 应用的入口文件。
  • 💫src/App.js: 这是一个基本的组件文件,包含了应用的初始内容。

4. 编辑 App 组件

接下来,打开 src/App.js 文件。这里定义了一个名为 App 的React 组件,它返回一段能够被渲染的 JSX 代码。

function App() {return (<div className="App"><header className="App-header"><p>Edit <code>src/App.js</code> and save to reload.</p></header></div>);
}export default App;

可以修改上面的 App 组件,例如,更改段落 <p> 中的文字并保存文件,你的浏览器会自动刷新并显示新的内容。

5. JSX 语法

JSX 是一种看起来很像 HTML 的 JavaScript 语法扩展。与 React 一起使用时,JSX 可以让你更方便地描述 UI 应该呈现出什么样子。

6. 组件和 Props

组件是 React 应用的核心概念之一,它们让你能够拆分 UI 成独立的、可复用的部分,并且可以独立地考虑每个部分。

Props 是组件的参数。你可以这样创建一个带有 props 的组件:

function Welcome(props) {return <h1>Hello, {props.name}</h1>;
}

并在其他组件中使用它:

<Welcome name="Sara" />

7. State 和生命周期

State 是 React 组件的另一个重要概念,State 允许 React 组件在不需要重新加载页面的情况下,响应用户输入、网络响应和其他事件。

使用 State,你需要将函数组件转换为类组件或使用 Hooks。一个类组件例子:

class Clock extends React.Component {constructor(props) {super(props);this.state = {date: new Date()};}componentDidMount() {this.timerID = setInterval(() => this.tick(),1000);}componentWillUnmount() {clearInterval(this.timerID);}tick() {this.setState({date: new Date()});}render() {return (<div><h1>Hello, world!</h1><h2>It is {this.state.date.toLocaleTimeString()}.</h2></div>);}
}

8. 使用 Hooks

从 React 16.8 开始,你可以在不编写类的情况下使用 state 和其他 React 特性,这得益于引入了 Hooks。

import React, { useState, useEffect } from 'react';function Clock() {const [date, setDate] = useState(new Date());useEffect(() => {const timerID = setInterval(() => tick(), 1000);return () => {clearInterval(timerID);};}, []);function tick() {setDate(new Date());}return (<div><h1>Hello, world!</h1><h2>It is {date.toLocaleTimeString()}.</h2></div>);
}

9. 测试你的组件

你的 React 应用可以通过各种方式来测试,一种流行的方法是使用 Jest 框架进行测试,它通常与 React 应用一起安装。

10. 部署你的应用

一旦你的应用做好了发布的准备,你可以运行 npm run build 来构建一个用于生产的版本,这会在你的项目目录下创建一个 build 文件夹,其中包含了用于部署的文件。

进一步学习 React,建议阅读 React 官方文档,用以深入理解这个库以及它的高级功能。

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

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

相关文章

Linux基础命令大全

1、pwd&#xff1a;显示当前路径 cd &#xff1a;切换目录 用法&#xff1a;cd cd ../ 切换到上级目录 cd / 切换到根目录 cd ~ &#xff08;或只有cd &#xff09;切换到当前用户主目录(home底下以用户名命名的文件夹) /root目录mkdir 创建目录 mkdir 目录名 -p 递归创建目录…

代码随想录 Day-25

力扣题目 509.斐波那契数 思路 很理所当然的&#xff0c;可以使用递归的方式其次是用动态规划的方式&#xff0c;动态规划的核心就是递推公式。 那么递推和递归一字之差&#xff0c;有什么区别呢&#xff1f;&#xff08;递推和递归的区别&#xff09; 1、递归 class Solutio…

OD C卷 - 反射计数

反射计数&#xff08;200&#xff09; 给定一个包含0 、1的二维矩阵&#xff1b;一个物体从给定的初始位置出发&#xff0c;在给定的速度下移动&#xff0c;遇到矩阵的边缘则发生镜面反射&#xff0c;无论物体经过0还是1&#xff0c;都不影响其速度&#xff1b;经过t时间单位后…

C++ 之多态虚函数原理及应用

文章目录 多态基本概念和原理虚函数的基本原理和概念虚析构和纯虚析构多重继承中的虚函数小结 多态基本概念和原理 多态的基本概念 **多态是C面向对象三大特性之一** 多态的定义 多态是一种面向对象编程概念&#xff0c;指同一个行为&#xff08;方法&#xff09;在不同的对象上…

ChatGPT与传统搜索引擎的区别:智能对话与关键词匹配的差异

引言 随着互联网的快速发展&#xff0c;信息的获取变得比以往任何时候都更加便捷。在数字化时代&#xff0c;人们对于获取准确、及时信息的需求愈发迫切。传统搜索引擎通过关键词匹配的方式为用户提供了大量的信息&#xff0c;然而&#xff0c;这种机械式的检索方式有时候并不…

ubuntu 中安装docker

1 资源地址 进入ubuntu官网下载Ubuntu23.04的版本的镜像 2 安装ubuntu 这里选择再Vmware上安装Ubuntu23.04.6 创建一个虚拟机&#xff0c;下一步下一步 注意虚拟机配置网络桥接&#xff0c;CD/DVD选择本地的镜像地址 开启此虚拟机&#xff0c;下一步下一步等待镜像安装。 3…

书生·浦语大模型实战营之全链路开源体系

书生浦语大模型实战营之全链路开源体系 为了推动大模型在更多行业落地开花&#xff0c;让开发者们更高效的学习大模型的开发与应用&#xff0c;上海人工智能实验室重磅推出书生浦语大模型实战营&#xff0c;为广大开发者搭建大模型学习和实践开发的平台&#xff0c;两周时间带…

【Java程序设计】【C00352】基于Springboot的疫情隔壁酒店管理系统(有论文)

基于Springboot的疫情隔壁酒店管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 &#x1f345;文末点击卡片获取源码&#x1f345; 开发环境 运行环境&#xff1a;推荐jdk1.8&#xff1b; 开发工具&#xff1a;eclipse以…

C语言例4-28:求两个正整数的最大公约数。

算法分析&#xff1a; 输入两个正整数m和nm%n 的余数 r&#xff0c;然后 mn;nr;当 n0, 则m是最大公约数&#xff0c;算法结束&#xff1b;否则转至执行2&#xff0c;重复上述过程&#xff0c;直到n0为止 代码如下&#xff1a; //求两个正整数的最大公约数。 #include<std…

PointNet++论文复现(三)【抽象层定义、分类模型 代码详解】

目录 抽象层 特征提取 整体代码 分类模型 以 pointnet2_cls_msg.py 为例 整体代码 抽象层 位于 pointnet2_utils.py 定义 特征提取 整体代码 # 特征提取 对应PointNet++ 中的 set abstraction (集合抽象化) # 首先, 通过 sample_and_group 操作形成局部 group # 然后, 对…

JAVA实现大文件的分片上传与下载(SPRINGBOOT+VUE3)

版本&#xff1a;6.5.40 代码&#xff1a;up6-jsp-springboot: Web大文件上传-jsp-springboot示例 - Gitee.com nosql示例 nosql示例不需要进行任何配置&#xff0c;可以直接访问测试。 SQL示例 1.创建数据库 2.配置数据库连接 3.自动下载maven依赖 4.启动项目 启动成功 6.访…

Autosar-NvM配置详解(免费)-1

1NvMd在Autosar架构中的位置 NvM模块包含&#xff1a;NvM, NemIf&#xff0c;Fee&#xff0c;Ea, Fls和Eep&#xff0c;它们的说明如下&#xff1a; NvM&#xff1a;NvM主要考虑的是数据的存储&#xff0c;直接与应用层进行交互。它主要针对的对象是数据&#xff0c;关心的是…