React学习笔记(一)——react基础

1. React 介绍

1.1 React是什么

React由Meta公司研发,是一个用于 构建Web和原生交互界面的库

1.2 React的优势

相较于传统基于DOM开发的优势:
  • 组件化的开发方式
  • 不错的性能

相较于其它前端框架的优势:

  • 丰富的生态
  • 跨平台支持

1.3 React的市场情况

全球最流行,大厂必备

2. 开发环境搭建

2.1 使用create-react-app快速搭建开发环境

create-react-app是一个快速 创建React开发环境的工具, 底层由Webpack构建, 封装了配置细节 ,开箱即用
执行命令:
  • npx create-react-app react-basic
    • npx Node.js工具命令,查找并执行后续的包命令
    • create-react-app 核心包(固定写法),用于创建React项目
    • react-basic React项目的名称(可以自定义)
创建React项目的更多方式:
  • https://zh-hans.react.dev/learn/start-a-new-react-project

2.2 react 项目文件说明

  • 项目的根组件 App.js

  • 项目的入口,项目从这里开始运行 index.js

2.3 index.js项目入口文件

  • App.js -> index.js -> public/index.html(root)

2.4 App.js 项目根组件

3. JSX基础-概念和本质

3.1 什么是JSX

概念:
  • JSX 是 JavaScript 和 XML(HTML)的缩写,表示在 JS 代码中编写 HTML 模版结构,它是React 中编写 UI 模版的方式
优势:
  • HTML的声明式模版写法
  • JS的可编程能力

3.2 JSX的本质

JSX 并不是标准的 JS 语法,它是  JS 的语法扩展 ,浏览器本身不能识别,需要通过 解析工具做解析 之后才能在浏览器中运行

3.3 JSX高频场景-JSX中使用JS表达式

在 JSX 中可以通过 大括号语法{} 识别 JavaScript中的表达式,比如常见的变量、函数调用、方法调用等等

  • 使用引号传递字符串
  • 使用JS变量
  • 函数调用和方法调用
  • 使用JavaScript对象

​​​注意:

  • if语句、switch语句、变量声明属于语句,不是表达式,不能出现在{}中

3.4 JSX高频场景-JSX中实现列表渲染

语法:
  • 在JSX中可以使用原生JS中的map方法遍历渲染列表
  • map方法会返回一个新的数组,该数组包含通过对原始数组中的每个元素应用一个函数处理后得到的结果。

  • map 循环那个结构 return那个结构

  • key 的作用: React框架内部使用,提升更新性能

3.5 JSX高频场景-JSX中实现条件渲染

语法:
  • 在React中,可以通过逻辑与运算符&&、三元表达式(?:)实现基础的条件渲染

3.6 JSX高频场景-JSX中实现复杂条件渲染

需求:
  • 列表中需要根据文章状态适配三种情况,单图,三图,和无图三种模式
解决方案:
  • 自定义函数 + if判断语句

4. React中的事件绑定

4.1 React 基础事件绑定

语法:
  • on + 事件名称 = { 事件处理程序 },整体上遵循驼峰命名法

4.2 使用事件对象参数

语法:
  • 在事件回调函数中设置形参e

4.3 传递自定义参数

语法:
  • 事件绑定的位置改造成箭头函数的写法,在执行clickHandler实际处理业务函数的时候传递实参

注意:

  • 不能直接写函数调用,这里事件绑定需要一个函数引用

4.4 同时传递事件对象和自定义参数

5. React中的组件

5.1 组件是什么

概念:
  • 一个组件就是用户界面的一部分,它可以有自己的逻辑和外观,组件之间可以互相嵌套,也可以复用多次
  • 组件化开发可以让开发者像搭积木一样构建一个完整的庞大的应用

5.2 React组件

在React中,一个组件就是 首字母大写的函数 ,内部存放了组件的逻辑和视图UI, 渲染组件只需要把组件 当成标签书写 即可

6. useState

6.1 useState基础使用

useState 是一个 React Hook(函数),它允许我们向组件添加一个 状态变量 , 从而控制影响组件的渲染结果
5 本质:
  • 和普通JS变量不同的是,状态变量一旦发生变化组件的视图UI也会跟着变化(数据驱动视图)

说明:

  • useState是一个函数,返回值是一个数组
  • 数组中的第一个参数是状态变量,第二个参数是set函数用来修改状态变量
  • useState的参数将作为count的初始值
  • 需要先从 react 中导入 useState 函数

6.2 修改状态的规则—状态不可变

在React中,状态被认为是只读的,我们应该始终 替换它而不是修改它 直接修改状态不能引发视图更新

6.3 修改对象状态

规则:
  • 对于对象类型的状态变量,应该始终传给set方法一个全新的对象来进行修改
直接修改原对象,不引发视图变化
调用set传入新对象用于修改

7. 组件的样式处理

7.1 组件基础样式方案

React组件基础的样式控制有俩种方式:
  • 行内样式(不推荐)
  • class类名控制

① 行内样式

  • 第一个 {} 是一个语法, 第二个{} 是一个对象

② class类名控制

  • index.css

  • App.js

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

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

相关文章

基于MATLAB视觉的静态手势识别系统

一、课题介绍及思路 为了丰富手势识别方法的多样性,提高手势识别的正确率,提出了一种基于手势轮廓像素变化的手势识别方法。在Matlab环境下,设计并开发了一个基于视觉的静态手势识别系统。系统主要由两部分组成:手势分割与手势识…

数据科学已死?

既然有了人工智能,训练自己的机器学习模型是否还值得? 既然有了人工智能,学习 Python 是否还值得? 既然有了人工智能,KNIME 还在营业吗? 既然有了人工智能,数据科学是否仍然需要?…

指挥调度平台——数字赋能,让出行更有温度

智慧交通指挥调度平台是基于信息技术和智能化系统的创新解决方案,旨在提升城市交通管理效率、改善交通流畅度、减少拥堵问题,以及增强城市交通运行的智能化水平。该平台整合了大数据分析、实时监测、智能优化算法等技术,为交通管理部门提供全…

牛!6个大模型的核心技术!

大家好,我是花哥。本文我们谈下火爆的大模型背后,有哪些的核心技术! 一、Transformer Transformer 是大模型的底层模型。在深度学习的早期阶段,循环神经网络(RNN)是处理序列数据的常用方法。尽管RNN及其变…

1.XV6环境配置

安装虚拟机 这个就不多说了,搞一台Ubuntu虚拟机即可,最好是通过vscode 用ssh远程连接进行实验会比较方便,具体怎么做可参考我这篇博客: VsCode配置SSH连接远程服务器(手把手,学不会打我)_vsco…

【GitLab】使用 Docker 安装 GitLab 1:配置 SSH 端口

使用 Docker 安装 GitLab 要求修改ssh端口 GitLab 使用 SSH 通过 SSH 与 Git 交互。默认情况下,GitLab 使用端口22。 要在使用 GitLab Docker 映像时使用其他端口,您可以执行以下操作之一: 更改服务器的 SSH 端口(推荐)。 更改 GitLab Shell SSH 端口。 更改服务器的 SSH …

数据链路层 III(介质访问控制)【★★★★★】

(★★)代表非常重要的知识点,(★)代表重要的知识点。 介质访问控制所要完成的主要任务是:为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。 下图所示是广播…

ubuntu安装虚拟环境(tensorflow、torch)

一、安装需求 1、确保ubuntu可以ping通百度 2、设置好了pip镜像源,(具体可看:ubuntu配pip的源-CSDN博客) 二、安装虚拟环境(务必使用sudo进行) step1:执行安装命令 更改了pip默认使用pip3的…

基于WonderJourney生成电影级连续的3D场景视频

在本文中,我将详细记录在Windows环境下配置和使用WonderJourney项目的完整流程,包括环境搭建、常见问题的解决方案以及如何修改源码以兼容Windows系统。WonderJourney项目能够生成高度逼真的村庄视频,并允许用户通过配置文件对视频生成过程进行精细化控制。 由于官方文档在…

基于Java语言的能源管理系统-水电气热油数据采集系统

介绍 基于SpringCloud的能源管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud全家桶-能管管理系统源码 适用于建筑、工厂、商场、医院、园区、高耗能企业、城市双碳建设平台等的水、电、气、热、油等能源数据采集、加工、分析、预警、碳指标、碳排放计算…

vue使用axios请求后端数据

前后端分离项目的基础: 前后端跨域访问 vite.config.js中加入 // 1.为什么要跨域 //因为浏览器的同源策略,不同站点之间访问需要跨域 //实现跨域的方式:server: {proxy: {// 假设要跨域访问的后端 API 地址以 /api 开头/api: { //表示拦截以/api开头的…

域名注册查询方法

域名不仅是网站的地址标识,更是企业和个人在互联网上的身份证明。要确保自己的在线品牌安全,了解域名注册查询方法至关重要。本文将介绍几种常见的域名查询方式,帮助您轻松了解网络资产的归属。 1. WHOIS查询: WHOIS(…

产品经理-​​实习中的自我迭代(41)

实习中的自我迭代,优秀实习生必备素质 跟大家认识了之后,就要开始做事情了,那我们怎么做一个优秀的实习生呢?以下几点作为参考。 1. 目标明确 知道自己的工作为什么要做,要做到什么程度,目前存在什么问题,该…

C++11:右值引用、移动语义和完美转发

目录 前言 1. 左值引用和右值引用 2. 引用范围 3. 左值引用的缺陷 4. 右值引用的作用 5. 右值引用的深入场景 6. 完美转发 总结 前言 C11作为一次重大的更新,引入了许多革命性的特性,其中之一便是右值引用和移动语义。本文将深入探讨其中引入的…

如何科学设定短信群发频率

在利用短信群发作为营销策略时,平衡好发送频率至关重要。过于频繁的短信可能招致客户反感甚至被屏蔽,而发送不足则可能导致品牌信息被遗忘。因此,精准把握短信群发频率,是提升客户体验与品牌记忆度的关键。以下是几个常见行业短信…

Aop切面编程

学习视频 一、定义模型:订单保存模型,订单更新模型,业务层,日志模型 订单保存模型 /*** author durunwu* date 2024-08-20-21:04*/ Data public class SaveOrder {private Long id; }订单更新模型 /*** author durunwu* date …

Veritas NBU8.3.0.2 安装Master Server及汉化包(篇二)

一、环境自检阶段 1、Master角色地址为192.168.189.2,计算机名称为bakmaster,域名为sszz.com 2、防火墙均已关闭 二、安装Master Server 1、右击“Browser”以管理员身份运行 2、单击“NetBackup Server Software Installation” 3、忽略UAC告警&#…

iOS18升级出现白苹果、无法重启等问题,要怎么解决

随着苹果iOS 18系统beta版本的推出,不少用户在私信说升级后遇到了白苹果和无法重启等问题。这些问题不仅影响了大家的正常使用,还会导致数据丢失和系统崩溃。本文将详细介绍iOS 18升级后出现白苹果、无法重启等问题的原因及解决方法,帮助大家…

Mysql的相关编程基础知识

一. 配置MySQL 首先下载mysql-5.0.96-winx64,安装过程如下图所示。 1.安装MySQL 5.0 ​ ​ 2.选择手动配置、服务类型、通用多功能型和安装路径 ​ 3.设置数据库访问量连接数为15、端口为3306(代码中设置URL用到)、编码方式为utf-8 ​ 4.设…

Opencv-C++笔记 (20) : 距离变换与分水岭的图像分割

文章目录 一、图片分割分水岭算法理解分水岭算法过程 二、距离变换与分水岭距离变换常见算法有两种分水岭变换常见的算法步骤 主要函数c代码四、结果展示 一、图片分割 图像分割(Image Segmentation)是图像处理最重要的处理手段之一 图像分割的目标是将图像中像素根据一定的规则…