【React】组件基础使用

news2024/9/29 13:03:18

1. react组件

在react中,组件就是首字母大写的函数,内部存放了组件的逻辑、UI,渲染组件只需要把组件当成标签书写。

  1. 使用组件有两种方式:自闭和 、成对标签
function App() {
  // 定义组件
  function Component() {
    return <div>我是一个自定义组件</div>
  }
  return (
    <div className="App">
      {/* 方式1 */}
      <Component/>
      {/* 方式2 */}
      <Component></Component>
    </div>
  );
}

export default App;

在这里插入图片描述

2. useState使用

  1. 一个react hook(函数),允许我们向组件添加一个状态变量,从而控制影响组件的渲染结果
  2. 本质:状态变量发生变化,组件的UI也会跟着变化(数据驱动视图)

在这里插入图片描述
使用useState实现一个计数器

import { useState } from "react";

function App() {
  const [count, setCount] = useState(0)
  function add() {
    // 作用:1、用传入的新值修改count的值
    // 2. 使用新的count渲染ui
    setCount(count + 1)
  }
  return (
    <div className="App">
      <button onClick={add}>{count}</button>
    </div>
  );
}

export default App;

3. useState修改状态的规则

  1. 状态不可变(状态只读,始终替换它而不是修改它,直接修改状态不能引发视图更新)
  2. 对于对象类型的状态变量,应始终传给set方法一个全新的对象来进行修改
import { useState } from "react";

function App() {
  const [count, setCount] = useState(0)
  const [form, setForm] = useState({
    name: '赵四'
  })
  function add() {
    // 作用:1、用传入的新值修改count的值
    // 2. 使用新的count渲染ui
    setCount(count + 1)
  }
  function changeForm() {
    // 错误写法,直接修改
    // form.name = '刘能'

    // 正确写法
    setForm({
      ...form,
      name: '刘能'
    })
  }
  return (
    <div className="App">
      <button onClick={add}>{count}</button>
      <button onClick={changeForm}>hi,我是{form.name}</button>
    </div>
  );
}

export default App;

如何更新数组类型的状态变量,可以参考react官方文档:https://react.docschina.org/learn/updating-arrays-in-state

参考:黑马程序员react教程

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

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

相关文章

从入门到入土:计算机视觉CV学习路线图

在当今这个被数据和图像淹没的世界&#xff0c;计算机视觉&#xff08;CV&#xff09;正如一位聪明绝顶的魔术师&#xff0c;能够从无数的图像中提取出有意义的信息。对于那些初入这个领域的新人&#xff0c;学习计算机视觉既是一场冒险&#xff0c;也是一场盛宴。让我作为一位…

安科瑞诚邀您参加2024年CDCE国际数据中心及云计算展

展会邀请 安科瑞&#xff08;Acrel&#xff09;诚挚邀请您和您的公司代表参观我们在2024年CDCE国际数据中心及云计算展上的展位。 安科瑞&#xff08;Acrel&#xff09;是一家集研发、生产、销售和服务于一体的企业&#xff0c;成立于2003年并于2012年在创业板上市&#xff0…

探索机器人快换盘技术的未来之路:智能化与协作的革新

在当今快速发展的科技时代&#xff0c;机器人已成为众多领域不可或缺的得力助手。其中&#xff0c;机器人快换盘技术作为提升机器人灵活性和应用广度的重要技术&#xff0c;正经历着前所未有的变革与创新。下面请随我们一起深入探讨这一技术的未来发展趋势。 一、人工智能&…

建投数据获得安防工程企业设计施工维护能力证书(壹级)

近日&#xff0c;经中国安全防范产品行业协会审核&#xff0c;建投数据顺利获得安防工程企业设计施工维护能力证书&#xff08;壹级&#xff09;。 安防工程企业设计施工维护资质是对企业安防工程设计、施工、维护等领域专业能力的综合认证&#xff0c;是衡量企业规模、工程业绩…

阿里云百炼SFT微调实践

1. 场景识别 用户进行SFT前需要对应用场景进行识别和分析&#xff0c;一般进行模型微调的诉求是希望提升对应业务场景的能力&#xff0c;用户需要明确哪些能力是需要进行重点提升的。 场景划分上来讲&#xff0c;以垂类场景进行划分可分为教育、医疗、金融、法律、电商、旅游、…

IP地址的打卡路径是什么?

众多周知&#xff0c;IP地址使我们浏览网站的“必需品”&#xff0c;他会在我们进行网络活动时起到通关文牒一般的作用。那么&#xff0c;放我们进行网络活动时&#xff0c;我们的“通关文牒”上面会在哪些地点留下痕迹&#xff0c;IP地址的流转路径是什么&#xff1f; 第一关…

2024国庆节有哪些必囤的好物产品?一文了解那些入手不亏的国庆好物

国庆假期即将来临。对于追求品质生活的朋友们来说&#xff0c;这无疑是一个不容错过的购物机会。那么&#xff0c;在这个国庆&#xff0c;哪些好物值得你重点关注呢&#xff1f;我特地整理了一份推荐清单&#xff0c;这些产品不仅经过我的亲身体验&#xff0c;更以其卓越的实用…

建投数据自主研发相关系统获得欧拉操作系统及华为鲲鹏技术认证书

近日&#xff0c;经欧拉生态创新中心和华为技术有限公司测评&#xff0c;建投数据自主研发的投资项目管理系统、全面风险管理信息系统、商业不动产业务系统&#xff0c;完成了基于欧拉操作系统openEuler 22.03、华为鲲鹏Kunpeng 920&#xff08;Taisha 200&#xff09;的兼容性…

快速创建第一个Spring Boot 项目

一、介绍 Spring Boot 是一个开源的 Java 基础框架&#xff0c;它基于 Spring 框架&#xff0c;用于创建独立、生产级别的基于 Spring 的应用程序&#xff0c;你可以“跑起来”&#xff08;run&#xff09;你的 Spring 应用程序。Spring Boot 让基于 Spring 的应用开发变得更容…

Spring Boot 3.x 配置 Spring Doc以及导入postman带图详解

一、pom.xml配置 <!-- API⽂档⽣成&#xff0c;基于swagger3 --><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.0.2</version></dependency>…

【简单介绍】DevOps是什么?

由于 DevOps 方法的广泛采用以及由此产生的快速产品交付和部署&#xff0c;许多部门已采用更敏捷的方法来开发生命周期。在满足市场速度和规模要求的同时&#xff0c;设计安全的软件一直是现代 IT 公司共同面临的问题。结果&#xff0c;超过 52% 的组织因为担心上市速度落后而放…

蛋白家族系列:FGF

成纤维细胞生长因子&#xff08;FGF&#xff09;是一种广谱有丝分裂原&#xff0c;作为多肽配体&#xff0c;可以旁分泌或内分泌方式发挥作用。FGF通过与成纤维细胞生长因子受体&#xff08;FGFR&#xff09;介导的信号轴刺激或维持代谢、组织稳态和发育所需的特定细胞功能。 &…

构建高可用和高防御力的云服务架构第四部分:REDIS(4/5)

本文的目的是深入探讨Redis在构建高可用和高防御力云服务架构中的应用。我们将分析Redis的工作原理、核心特性以及如何通过Redis优化云服务架构的性能和安全性。此外&#xff0c;我们还将提供实际案例和最佳实践&#xff0c;帮助读者更好地理解和应用Redis&#xff0c;以构建更…

双十一好货推荐有哪些?五大双十一种草好物推荐!

现在的双十一显然已经成为了品牌和消费者之间的重要交汇点。在这一天&#xff0c;各大电商平台推出了各种促销活动&#xff0c;让我们有机会买到心仪的商品。那么双十一好货推荐有哪些&#xff1f;为了帮助大家更好地把握这个特殊的购物时机&#xff0c;我们精心准备了五大双十…

如何准备秋招入行游戏开发?

如何准备秋招入行游戏开发? 秋招非常非常重要&#xff01;绝不能轻易错过&#xff01;&#xff01;! 早起的鸟儿有虫吃&#xff0c; 这句话对于企业和应届生双方而言都是适用的。 对于有校招需求的企业而言&#xff0c; 秋招是一年中规模最大的招聘项目之一&#xff0c; …

css-functions伪类选择器系列二

一张图浏览CSS Functions 概述 本文主要讲述CSS的部分伪类选择器第二篇&#xff0c;包括&#xff1a;:nth-child、:nth-last-child、:nth-of-type和:nth-last-of-type。 :nth-child() :nth-child伪类是根据父元素的子元素列表中的索引来选择元素。 语法 :nth-child是以一…

wireshark使用要点

目录 IP过滤 端口过滤 内容过滤 过滤udp 过滤tcp IP过滤 ip.src XXX.XXX.XXX.XXX 只显示消息源地址为XXX.XXX.XXX.XXX的信息 ip.dst XXX.XXX.XXX.XXX 只显示消息目的地址为XXX.XXX.XXX.XXX的信息 ip.addr XXX.XXX.XXX.XXX显示消息源地址为XXX.XXX.XXX.XXX&#xff0…

LInux操作系统安装Jenkins

1、什么是Jenkins Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。 2、Jenkins的作用 持续的软件版本发布/测试项目。 监控…

零基础入门ComfyUI(一)初识ComfyUI

前言 AIGC 中文本生成图片的两大阵营&#xff0c;Stable Diffusion 和 Midjourney 。Midjourney 于 22 年3 月面世&#xff0c;22 年 7 月份的公测 v3 版本火出圈&#xff0c;迅速成为讨论焦点。同年7月Stable Diffusion问世&#xff0c;解决了绘画的细节及效率问题&#xff0c…

数字游戏C++

题目: 题目就是让你输入一个长度为88的0101串&#xff0c;让你求出中间1有几个。 wo一看到这题&#xff0c;立马想到暴力求解&#xff1a;循环八遍&#xff0c;每次输入一个char&#xff0c;减掉四十八加一起&#xff0c;输出&#xff0c; 细细一想&#xff1a;诶&#xff0c;…