React组件

news2024/12/27 10:45:12

React组件

  • 1.组件基本介绍
  • 2.React创建组件的两种方式
    • 2.1 函数组件
    • 2.2 类与继承
      • 2.2.1 class 基本语法
      • 2.2.2 extends 实现继承

1.组件基本介绍

  • 组件是React中最基本的内容,使用React就是在使用组件
  • 组件表示页面中的部分功能
  • 多个组件可以实现完整的页面功能
  • 组件特点:可复用,独立,可组合
    在这里插入图片描述

2.React创建组件的两种方式

2.1 函数组件

函数组件:使用JS的函数或者箭头函数创建的组件

  • 为了区分普通标签,函数组件的名称必须大写字母开头
  • 函数组件必须有返回值,表示该组件的结构
  • 如果返回值为null,表示不渲染任何内容

使用函数创建组件

function Hello () {
    return (
    	<div>这是我的函数组件</div>
    )
}

使用箭头函数创建组件

const Hello = () => <div>这是一个函数组件</div>

使用组件

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

例子:
01-函数组件-基本使用

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

/* 
  1. 通过函数创建一个组件即可
    1. 组件的名字必须是大写开头  为了区分html原有的标签
    2. 组件必须返回一段结构
    3. 如果组件不想渲染任何的内容  也需要return null
*/
function Hello() {
  return <div>我是hello组件</div>
}

const element = (
  <div>
    <h1>函数组件</h1>
    {/* 使用组件 */}
    <Hello></Hello>
    <Hello></Hello>
  </div>
)

ReactDOM.render(element, document.getElementById('root'))

02-函数组件-箭头函数

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

const Hello = () =><div>我是Hello组件</div>
const element = (
  <div>
    <h1>函数组件</h1>
    {/* 使用组件 */}
    <Hello></Hello>
    <Hello></Hello>
  </div>
)

ReactDOM.render(element, document.getElementById('root'))

在这里插入图片描述

2.2 类与继承

2.2.1 class 基本语法

  • 在 ES6 之前通过构造函数创建对象
  • 在 ES6 中新增了一个关键字 class,类 和构造函数类似,用于创建对象
    -类与对象的区别
    -类:指的是一类的事物,是个概念,比如车 手机 水杯等
    -对象:一个具体的事物,有具体的特征和行为,比如一个手机,我的手机等, 类可以创建出来对象。
  • 类创建对象的基本语法
    -基本语法class 类名{}
    -构造函数constructor的用法,创建对象
    -在类中提供方法,直接提供即可
    -在类中不需要使用,分隔
/* class 类  extends 继承 */
// function Teacher(name, age) {
//   this.name = name
//   this.age = age
// }

// Teacher.prototype.sayHi = function () {
//   console.log('大家好,我是' + this.name)
// }

// const stu = new Teacher('松哥', 29)
// console.log(stu)
// stu.sayHi()

// class是一个语法糖
class Teacher {
  // 构造函数
  constructor(name, age) {
    this.name = name
    this.age = age
  }

  sayHi() {
    console.log('大家好,我是' + this.name)
  }

  sing() {
    console.log('能够唱歌')
  }
}

const stu = new Teacher('松哥', 29)
console.log(stu)
stu.sing()

在这里插入图片描述

2.2.2 extends 实现继承

  • extends 基本使用
  • 类可以使用它继承的类中所有的成员(属性和方法)
  • 类中可以提供自己的属性和方法
  • 注意:如果想要给类中新增属性,必须先调用 super 方法
/* 
  Person  人

  Chinese 中国人
  African 非洲人
*/
class Person {
  constructor(name, gender) {
    this.name = name
    this.gender = gender
  }

  eat() {
    console.log('都会吃')
  }
}

class Chinese extends Person {
  constructor(name, gender) {
    // 父类的构造函数
    super(name, gender)
    this.skin = 'yellow'
  }
  pingpong() {
    console.log('打乒乓球')
  }
}

const c1 = new Chinese('姚明', 40)
console.log(c1)
c1.eat()
c1.pingpong()

class African extends Person {
  constructor(name, gender) {
    super(name, gender)
    this.skin = 'black'
  }
  run() {
    console.log('跑的贼快')
  }
}

const xh = new African('小黑', 30)
console.log(xh)

在这里插入图片描述

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

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

相关文章

【无人机路径规划】基于IRM和RRTstar进行无人机路径规划(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

java后端第二阶段:JavaWeb

一、Mysql 定义&#xff1a;关系型数据库&#xff0c;存储在硬盘数据安全。 1.SQL通用语法 注释&#xff1a; 单行注释 -- 注释内容 或 #注释内容&#xff08;MySQL特有&#xff09; 多行注释 /* 注释 */ DDL&#xff1a;操作数据库&#xff0c;表等 DML&#xff1…

PCB设计如何防止阻焊漏开窗

PCB的阻焊层&#xff08;solder mask&#xff09;&#xff0c;是指印刷电路板子上要上绿油的部分。阻焊开窗的位置是不上油墨的&#xff0c;露出来的铜做表面处理后焊接元器件的位置&#xff0c;不开窗的位置都是印上油墨的防止线路氧化、漏电。 PCB阻焊层开窗的三个原因 1.孔…

【架构设计】如何让你的应用做到高内聚、低耦合?

前言 最近review公司的代码&#xff0c;发现代码耦合程度特别高&#xff0c;修改一处&#xff0c;不知不觉就把其他地方影响到了&#xff0c;这就让我思考该如何让我们写的代码足够内聚&#xff0c;减少耦合呢&#xff1f; "高内聚、松耦合"是一个非常重要的设计思…

Idea插件之日志管理神器(Grep Console)

1.简介Grep Console是一款方便开发者对idea控制台输出日志进行个性化管理的插件。2.功能特性Grep Console的主要功能特性&#xff1a;支持自定义规则来过滤日志信息&#xff1b;支持不同级别的日志的输出样式的个性化配置&#xff1b;总结&#xff1a;通过过滤功能、输出日志样…

经典卷积神经网络-AlexNet

AlexNet 学习目标 知道AlexNet网络结构能够利用AlexNet完成图像分类2012年&#xff0c;AlexNet横空出世&#xff0c;该模型的名字源于论文第一作者的姓名Alex Krizhevsky 。AlexNet使用了8层卷积神经网络&#xff0c;以很大的优势赢得了ImageNet 2012图像识别挑战赛。它首次证…

为何瑞达利欧的《原则一》这么难读懂?

开始搞不懂&#xff0c;为何一个桥水基金创始人&#xff0c;一位投资人&#xff0c;却写了一本这样的书&#xff0c;书中的内容初看时觉得与他从事的投资事业几乎毫无关系&#xff1f; 《原则》其副标题为《生活和工作的原则》 乍看&#xff0c;此书黑色的封皮&#xff0c;让我…

【自学C++】C++ std命名空间

C std命名空间 C std命名空间教程 在 C 中 std 命名空间 是 C 中标准库类型对象的命名空间。我们常用的输入和输出 函数 都是定义在 std 命名空间中的&#xff0c;因此&#xff0c;我们需要使用输入和输出&#xff0c;必须要引入 std 命名空间。 要引用一个命名空间中的内容…

电脑自动删除文件怎么恢复?分享4种方法

电脑出现文件丢失的情况常有发生&#xff0c;但是出现电脑自动删除文件的情况是怎么回事呢&#xff1f;电脑自动删除的文件怎么恢复呢&#xff1f;本文将详细阐述电脑自动删除文件原因和文件恢复方法。一、电脑自动删除文件是什么原因1.可能不是删除而是电脑开机用户名更改后导…

Java真的不难(五十三)Docker的快速入门及使用

Docker的入门及使用 这篇文章将不全面介绍理论&#xff0c;Docker对于我们后端开发来说会用就行&#xff0c;能使用Docker去安装一些镜像运行&#xff0c;为简化配置节省时间和错误率&#xff0c;所以这篇文章实用性很高&#xff0c;可以直接上手&#xff01; 一、什么是Docke…

生产制造业ERP管理系统财务管理解决方案

对于生产制造型企业来说&#xff0c;良好的资金运营管理机制是企业长期、稳定、健康发展的保证。因此&#xff0c;企业急需借助生产制造业ERP管理系统&#xff0c;不断加强企业财务管理&#xff0c;从而有效提升企业的经营效率&#xff0c;降低财务风险&#xff0c;缓解资金成本…

云渲染答疑:动画渲染价格一般多少?

云渲染是什么&#xff1f;云渲染就是通过互联网将用户本地需要渲染的文件上传到云端服务器中&#xff0c;再通过云端庞大的计算机集群资源进行运算操作&#xff0c;帮助用户在云端完成渲染工作后&#xff0c;用户再下载到本地的过程&#xff0c;整个过程操作十分简便。云渲染动…

【云原生进阶之容器】第二章Controller Manager原理2.5节--DeltaFIFO剖析

5 DeltaFIFO DeltaFIFO是K8s中用来存储处理数据的Queue,相较于传统的FIFO,它不仅仅存储了数据保证了先进先出,而且存储有K8s 资源对象的类型,它的作用是保证Reflector和Indexer之间对象同步。其是连接Reflector(生产者)和indexer(消费者)的重要通道。其核心处理流程如下: …

android 换肤框架搭建及使用 (3 完结篇)

本系列计划3篇: Android 换肤之资源(Resources)加载(一)setContentView() / LayoutInflater源码分析(二)换肤框架搭建(三) — 本篇 tips: 本篇只说实现思路,以及使用,具体细节请下载代码查看! 本篇实现效果: fragment换肤recyclerView换肤自定义view属性换肤打开打开打开动…

解决第三方图片403问题

第三方平台怎么处理图片资源保护的? 服务端一般使用 Referer 请求头识别访问来源&#xff0c;然后处理资源访问。 Referer 是什么东西? 扩展参考: http://www.ruanyifeng.com/blog/2019/06/http-referer.html Referer是 HTTP 请求头的一部分&#xff0c;当浏览器向 Web 服务…

HTML实现舔狗日记

演示 css html, body {background: radial-gradient(#181818, #000000);margin: 0;padding: 0;border: 0;-ms-overflow-style: none;}::-webkit-scrollbar {width: 0.5em;height: 0.5em;background-color: #c7c7c7;}/*定义滚动条轨道 内阴影圆角*/::-webkit-scrollbar-track {…

不会写代码?也不懂技术?3分钟搭建电商cps系统搞副业

大家好&#xff0c;我是小悟 唠唠家常 以前见面聊天&#xff0c;大家都习惯性会问“你吃饭了吗”&#xff0c;现在大家一出口就是“你阳了吗”。2023年元旦过去了&#xff0c;你还阳着么&#xff1f;不出意外的话就会出意外&#xff0c;小悟也已经中招过了&#xff0c;在家躺…

【Linux】tcpdump命令详解

1、列出本机所有的网卡接口 tcpdump -D2、捕获特定网口的数据包 tcpdump -i bond0.1083、捕获具体数量的数据包 tcpdump -c 5 -i eth04、捕获的数据包保存到指定的文件 tcpdump -w 0001.pcap -i eth05、捕获的数据包显示IP而不

E4402B频谱分析仪

18320918653 E4402B E4402B|Agilent|3G|频谱分析仪|安捷伦|9kHz至3GHz 品牌&#xff1a;安捷伦 Agilent 惠普 HP 测量速度&#xff1a;28次更新/秒 测量精度&#xff1a;1dB 可选用的10Hz分辨事宽滤波器 机箱可容纳6插槽选件卡 97dB三阶动态范围 能在现场使用的坚固&a…

(1分钟速览)SLAM问题中一般方程和超定方程的求解

今天在学习的过程中偶然看到了一个博客&#xff0c;总结Axb的&#xff0c;那么我也写一篇。首先就是判断A的秩和(A|b)的秩之间的关系&#xff0c;然后通过这个关系来进行进一步地判断。编辑切换为居中添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;求解方…