【react从入门到精通】初识React

news2024/11/23 16:53:44

文章目录

  • 前言
  • React技能树
  • 什么是 React?
  • 安装和配置 React
  • 创建 React 组件
  • 渲染 React 组件
  • 使用 JSX
  • 传递属性(Props)
  • 处理组件状态(State)
  • 处理用户输入(事件处理)
  • 组合和嵌套组件
  • 写在最后

在这里插入图片描述

前言

React 是一种由 Facebook 开发的流行的 JavaScript 库,用于构建现代的用户界面。它采用了组件化的方式,使得 UI 开发更加模块化、可复用和高效。本文将为您介绍 React 的基本概念和用法,帮助您入门 React 开发。

React技能树

React 技能树
├── JSX
│   ├── 语法
│   ├── 元素渲染
│   ├── 组件
│   ├── Props
│   ├── State
│   └── 生命周期
├── 组件通信
│   ├── 父子组件通信
│   ├── 兄弟组件通信
│   ├── 跨级组件通信
│   ├── Context
│   └── Redux
├── 样式
│   ├── 内联样式
│   ├── CSS Modules
│   └── Styled Components
├── 路由
│   ├── React Router
│   ├── 动态路由
│   └── 嵌套路由
├── 数据请求
│   ├── Axios
│   ├── Fetch
│   └── GraphQL
├── 状态管理
│   ├── Redux
│   ├── MobX
│   └── Recoil
├── 常用库和框架
│   ├── Ant Design
│   ├── Material UI
│   ├── Bootstrap
│   ├── Semantic UI
│   └── Tailwind CSS
├── 测试
│   ├── Jest
│   ├── Enzyme
│   └── React Testing Library
├── 构建工具
│   ├── Webpack
│   └── Parcel
└── 服务端渲染
    ├── Next.js
    └── Gatsby

什么是 React?

React 是一种用于构建用户界面的 JavaScript 库,它可以帮助您创建交互性的用户界面。React 的核心思想是组件化,将 UI 拆分为小的、可复用的组件,通过组合这些组件构建复杂的用户界面。

安装和配置 React

要开始使用 React,您需要在项目中安装 React 相关的 npm 包。可以使用 npm 或 yarn 进行安装,并在项目中引入 React 相关的库。例如,您可以通过以下命令安装 React:

npm install react react-dom

安装完毕后,您可以在项目中引入 React:

import React from 'react';
import ReactDOM from 'react-dom';

创建 React 组件

React 组件是构建用户界面的基本单元。您可以通过创建类组件或函数组件来定义一个 React 组件。类组件使用 ES6 类语法,而函数组件则是一个简单的 JavaScript 函数。
下面是一个简单的函数组件的例子:

import React from 'react';

const Hello = () => {
  return <div>Hello, React!</div>;
};

export default Hello;

渲染 React 组件

要在页面上渲染 React 组件,您需要使用 ReactDOM.render() 函数将组件渲染到目标 DOM 元素上。例如:

import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './Hello';

ReactDOM.render(<Hello />, document.getElementById('root'));

这将把 Hello 组件渲染到具有 id 为 root 的 DOM 元素上。

使用 JSX

JSX 是一种类似 HTML 的语法,用于在 JavaScript 中描述 UI 组件。它允许您在 JavaScript 代码中直接编写 HTML 标签和组件,使得创建 UI 更加直观和简洁。例如:

import React from 'react';

const Hello = () => {
  return <div>Hello, <strong>React</strong>!</div>;
};

export default Hello;

传递属性(Props)

React 组件可以通过属性(Props)来接收外部传递的数据。您可以将属性传递给组件,使组件能够根据传递的属性值渲染不同的内容。例如:

import React from 'react';

const Greeting = (props) => {
  return <div>Hello, {props.name}!</div>;
};

export default Greeting;

在这个例子中,Greeting 组件接收一个 name 属性,并在组件内部通过 {props.name} 将其渲染为文本内容。您可以在使用组件时通过传递不同的 name 属性值来定制欢迎语的内容。

处理组件状态(State)

React 组件可以拥有内部状态(State),用于存储和管理组件的数据。您可以通过使用 useState 钩子或类组件的 state 属性来创建和管理组件的状态。

例如,下面是一个使用 useState 钩子的函数组件,实现了一个简单的计数器:

import React, { useState } from 'react';

const Counter = () => {
  const [count, setCount] = useState(0);

  const increment = () => {
    setCount(count + 1);
  };

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
};

export default Counter;

在这个例子中,count 是组件的状态值,setCount 是用于更新状态值的函数。通过使用 useState 钩子,我们可以在函数组件中使用内部状态。

处理用户输入(事件处理)

React 组件可以响应用户的操作,例如点击按钮、输入文本等。您可以通过在组件中定义事件处理函数来处理这些用户输入。例如:

import React, { useState } from 'react';

const InputForm = () => {
  const [inputValue, setInputValue] = useState('');

  const handleChange = (event) => {
    setInputValue(event.target.value);
  };

  return (
    <div>
      <input
        type="text"
        value={inputValue}
        onChange={handleChange}
      />
      <p>Input value: {inputValue}</p>
    </div>
  );
};

export default InputForm;

在这个例子中,我们定义了一个 handleChange 函数来处理输入框的变化事件,并通过 onChange 属性将其绑定到输入框上。每当用户输入文本时,handleChange 函数会被调用,从而更新组件的状态值。

组合和嵌套组件

React 允许您将多个组件组合在一起,形成复杂的 UI。您可以在一个组件中嵌套另一个组件,从而实现更高级的 UI 功能。

例如,下面是一个简单的组合例子,包含一个 Header 组件和一个 Footer 组件:

import React from 'react';

const Header = () => {
  return <h1>Header</h1>;
};

const Footer = () => {
  return <h3>Footer</h3>;
};

const App = () => {
  return (
    <div>
      <Header />
      <p>Content</p>
      <Footer />
    </div>
    )
}

写在最后

✨原创不易,希望各位大佬多多支持。

👍点赞,你的认可是我创作的动力。

⭐️收藏,感谢你对本文的喜欢。

✏️评论,你的反馈是我进步的财富。

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

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

相关文章

群晖传输速度的问题

1、群晖被称“买软件送硬件”&#xff0c;所以同价位NAS中群晖的配置是很低的&#xff0c;一些入门级型号用起来明显卡顿就一点不奇怪了。 群晖各版本的CPU/内存配置可用在官网上查到&#xff0c;一个页面列出了所有产品的CPU/内存配置: 我的 Synology NAS 使用哪种 CPU&#…

【五一创作】Python 一文了解 OS 操作系统交互库简单使用方法

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,YOLO领域博主爱笑的男孩。擅长深度学习,活动,YOLO,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typecollect个人…

linux系统下C/C++静态库和动态库的制作及使用

C/C静态库和动态库的制作及使用 1 静态库的制作静态库简介1.1 编写源码1.2 生成目标文件1.3 ar归档,打包成静态库1.4 查看静态库1.5 测试静态库1.6 运行测试 2 动态库2.1 编写 Makefile2.2 编译链接动态库 1 静态库的制作 静态库简介 一般情况下&#xff0c;为了更好的支持开…

LC正弦波振荡器【高频电子线路】【Multisim】

目录 一、实验目的与要求 二、实验仪器 三、实验内容与测试结果 1、观察起振过程 2、观测稳定的输出波形及振荡频率的变化 3、测试静态工作点对起振和输出幅度的影响 4、测试回路电容对振荡频率和输出幅度的影响&#xff0c;并理论上给出解释 四、实验结果分析 一、实验…

【社区图书馆】【图书活动第四期】

目录 一、前言 二、作者简介 三、《PyTorch高级机器学习实战》内容简介 四、书目录 一、前言 今天&#xff0c;偶尔逛到csdn社区图书馆&#xff0c;看到有活动 “【图书活动第四期】来一起写书评领实体奖牌红包电子勋章吧&#xff01;”&#xff08;活动到今天结束&#xf…

荔枝派Zero(全志V3S)开启 SSH 实现远程连接和文件传输

文章目录 前言一、配置 buildroot二、编译 buildroot三、拷贝到 SD 卡四、测试 ssh1、修改 /etc/ssh/sshd_config 文件2、运行 /usr/sbin/sshd3、使用 SecureCRT 测试4、使用 SecureFx 测试 前言 本文将在 Buildroot 根文件系统开启 ssh 功能。 一、配置 buildroot 1、在 bui…

《软件测试》[Ron Patton](一)-软件测试背景、软件开发过程、软件测试基础

《软件测试&#xff08;原书第2版&#xff09;》作者: [美] Ron Patton 这本书是软件测试入门的经典书籍。我在刚入行时&#xff0c;也读过这本书&#xff0c;受益匪浅。并且即使是工作了这么多年&#xff0c;再回头看这本书&#xff0c;会发现怎么都逃不出这本书的范围。这个系…

【视频教程解读】Window上安装和使用autogluon V0.4

1.使用conda安装的python环境 教程使用的是极简版miniconda,由于我们的电脑中安装了anaconda&#xff0c;所以不需要进行进一步安装。python版本为3.9&#xff0c;博客里面有anaconda和python版本的对应关系。注意查看版本autogluon V0.4需要3.8或者3.9和3.10&#xff0c;pip版…

Linux:网络基础1

网络协议分层 所有网络问题&#xff0c;本质都是通信距离变长了&#xff0c;为了尽可能减少通信成本&#xff0c;定制了协议。 协议分层的优势&#xff1a; 软件设计方面的优势 - 低耦合 一般我们的分层依据: 功能比较集中&#xff0c;耦合度比较高的模块-- 一层 &#xff0c…

【Vue 基础】尚品汇项目-03-home首页搭建(全局组件与局部组件)

1. 完成三级联动组件&#xff08;全局组件&#xff09; 由于三级联动组件在Home、Search、Detail中都需使用&#xff0c;因此将三级联动组件作为全局组件&#xff0c;这样只需要注册一次&#xff0c;就可以在项目任意地方使用。 新建“home/TypeNav/index.vue”&#xff0c;写…

深度学习技巧应用10-PyTorch框架中早停法类的构建与运用

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用10-PyTorch框架中早停法类的构建与运用,文章将介绍深度学习训练过程中的一个重要技巧—早停法,以及如何在PyTorch框架中实现早停法。文章将从早停法原理和实践出发,结合实际案例剖析早停法的优缺点及在PyTorch中的应…

[创新工具和方法论]-02- DOE实验设计步骤

文章目录 1.DOE设计1.1 基于OFAT的传统实验设计&#xff1a;1.2 基于DoE的现代实验设计&#xff1a;1.3 DOE和OFAT的比较1.4 如何利用好DOE1.4.1 规划1.4.2 筛选1.4.3 表征1.4.4 优化1.4.5 确认 2. 步骤2.1陈述实际的问题和实验的目的2.2因果链分析,提取重要的因子2.3选择Y的响…

永磁同步电机(PMSM)无传感器控制基于滑膜观测器Matlab/Simulink仿真分析

文章目录 前言一、状态观测器二、滑膜状态观测器2.1.滑膜观测器的原理2.2.传统的滑膜观测器2.3.改进的滑膜观测器 三、Matlab/Simulink仿真分析3.1.仿真电路分析3.1.1 电机控制模式切换3.1.2 速度环控制3.1.3 电流环控制3.1.4 电机主电路 3.2.仿真结果分析 总结 前言 本章节采…

跳跃游戏 (DFS->记忆化搜索->动态规划/贪心证明)

一.跳跃游戏简单介绍 1. 跳跃游戏简单介绍 跳跃游戏是一种典型的算法题目&#xff0c;经常是给定一数组arr&#xff0c;从数组的某一位置i出发&#xff0c;根据一定的跳跃规则&#xff0c;比如从i位置能跳arr[i]步&#xff0c;或者小于arr[i]步&#xff0c;或者固定步数&#…

【HQL - 查询用户的累计消费金额及VIP等级】

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 题目&#xff1a; 从订单信息表(order_info)中统计每个用户截止其每个下单日期的累积消费金额&#xff0c;以及每个用户在其每个下单日期的VIP等级。 用户vip等级根据累积消费金额计算&#xff0…

Unity之OpenXR+XR Interaction Toolkit基本配置

前言 XR Interaction Toolkit 是Unity基于OpenXR标准&#xff0c;发布的一套XR工具&#xff0c;目的是方便我们快速接入XR相关的SDK&#xff0c;并且做到兼容不同VR设备的目的&#xff0c;目前流行的VR设备如Oculus&#xff0c;Metal&#xff0c;HTC Vive&#xff0c;Pico等统…

JavaSE第三章 访问修饰符,Collection,List

这里写目录标题 一 访问修饰符二 集合1.1 数组1.2 集合1.3 读Collection的源码1.3.1 add添加方法1.3.2 clear&#xff0c;size&#xff0c;isEmpty方法1.3.3 remove 方法1.3.4 equals方法与contain方法1.3.5 遍历&#xff0c;迭代器或者增强for循环1.3.6 迭代器重点 1.4 List1.…

numpy的下载、数据类型、属性、数组创建

下载numpy 因为numpy不依赖于任何一个包所以numpy可以直接使用pip命令直接下载 下载命令&#xff1a; pip install numpy # 默认从https://pypi.org/simple 下载 pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 从清华大学资源站点下载 pip install nump…

一步步解密微商城系统开发流程

作为现代商业的重要组成部分&#xff0c;电子商务系统的建设对于企业的发展至关重要。然而&#xff0c;对于一些小型企业来说&#xff0c;建设一个完整的电子商务系统可能会耗费大量的时间和金钱。微商城系统的出现有效地解决了这个问题&#xff0c;因为它可以在不需要太多资金…

趣说数据结构(练习1) —— 顺序表/链表力扣刷题

练习 1 —— 顺序表/链表力扣刷题 1. 合并两个有序链表 力扣题目地址&#xff1a;https://leetcode.cn/problems/merge-two-sorted-lists/ 问题描述&#xff1a;将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例&#x…