React 函数组件

2023-11-13

 1: React 组件 (函数式组件)

1:React提供了两种创建组件方式:
  1.1:函数式组件   1.2: 类组件

 执行了ReactDOM.render(<myComponent />... 之后, 发生了什么)
 1: React 解析组件标签。 找到myComponent 组件
 2: 发现组件使用是函数定义, 随后调用该函数, 将返回的虚拟DOM转化为真实DOM, 随后呈现在页面中。

 JSX 就是一个语法糖: 就是可以简单的创建虚拟DOM 
------------------------------------------------------------------
创建函数时组件: 
<div id="test"></div>
// 一定要写text/babel
<script type="text/babel">
   // 创建函数式组件
   function MyComponent() {
      console.log(this);  // undefined
      // 为什么是undefined, 因为我们写的是jsx 语法, 在经过babel 翻译之后,开启了严格模式
      // 禁止指向window 顶层的对象, 在babeljs.cn 在babel js 官网中可以测试
      return <h2>我使用函数定义组件, 适用于简单组件的定义</h2>
   }
   // 2: 渲染组件到页面
   ReactDOM.render(MyComponent/>, document.getElementById('test'))
</script>
// 注意:  定义函数式组件首字母必须大写,
          调用函数是组件的时候,  必须使用单闭合标签使用。

jsx 就是一个语法糖可以更加简单创建VDOM, 方便 快捷创建VDOM

2: 类的基本知识:

<script>
  // 创建一个Person类
  class Person {
    // 构造方法 == 就是当我们实例化这个类的时候这个构造函数会自动调用
    constructor(name, age) {
      this.name = name
      this.age = age
    }
   // 一般方法
   speak() 方法在类的原型对象上, 供实例调用
   通过Person 实例调用speak时, speak中的this就是Persons实例。
   speak() {
     console.log(`我名字是${this.name}, 我年龄是${this.age}`)
   } 
  }

 let p1 = new Person('xxx', 18);  // p: 就是一个实例对象  Person: 就是一个类
 let p2 = new Person('aaa', 20)
 console.log(p1); 
 console.log(p2); 
 p1.speak();
 p2.speak();
---------------------------------------------------------------------
继承
// 创建一个Student类,  继承Person 类
class Student extends Person {
 
}
let student = new Student('Bob, 20');
student.speak(); // 继承
</script>
--------------------------------------------------------------------
创建一个Student类, 继承Person 类
class Student extends Person {
  constructor(name, age, grade) {
    super();   // 子类重写父类的构造方法,  一定要使用super() 关键字
    this.name = name
    this.age = age
    this.grade = grade
  }

  // 重写父类的speak() 方法
  speak() {
    console.log(`我名字是${this.name}, 我年龄是${this.age}, 我的成绩是${this.grade}`)
  } 
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 函数组件 的相关文章

随机推荐

  • Linux-Hadoop部署

    部署Hadoop 一 Hadoop部署模式 1 独立模式 2 伪分布式模式 3 完全分布式模式 二 Hadoop集群规划 1 集群拓扑 2 角色分配 三 JDK安装与配置 1 下载JDK压缩包 2 上传到master虚拟机 3 在maste
  • oracle insert 方法 分类

    1 最基本的insert 单表单行插入 insert into tablename 列名 values value 2 单表多行插入 1 insert into select 将select 的结果集插入到目标表中 select 可以是你可
  • docker run 报错: dial tcp xxxxxxxx:443: i/o timeout报错

    报错信息 error pulling image configuration Get https production cloudflare docker com registry v2 docker registry v2 blobs s
  • R语言练习题2

    关注公众号凡花花的小窝 收获更多的考研计算机专业编程相关的资料 3 从mtcars数据集中取出wt gt 2 6并且vs 0的数据 subset mtcars mtcarsKaTeX parse error Expected EOF got
  • 【机器学习】机器故障的二元分类模型-Kaggle竞赛

    竞赛介绍 数据集描述 本次竞赛的数据集 训练和测试 是从根据机器故障预测训练的深度学习模型生成的 特征分布与原始分布接近 但不完全相同 随意使用原始数据集作为本次竞赛的一部分 既可以探索差异 也可以了解在训练中合并原始数据集是否可以提高模型
  • 【seafile】之 预览电子发票PDF显示不全问题

    文章目录 一 问题来源 二 解决 三 题外话 近期在处理网盘和在线文件相关问题 面对的事比较多且杂 记录下 问题 seafile自身预览PDF文件 部分不显示 图片显示如下 一 问题来源 seafile版本 7 0 5 原因 原文件pdf
  • Feign常用的请求拦截器

    IFeignAutoConfiguration Configuration ConditionalOnClass Feign class Order Ordered LOWEST PRECEDENCE 10000 public class
  • 推荐11款开源自动化安全测试实用工具

    安全测试 渗透测试 可以让企业了解现有网络安全措施的成效或不足 进而帮助其调整安全项目 并主动发现漏洞 但是 安全测试是一项工作量很大的工作 测试团队需要在较短时间内快速完成以下任务 侦察并分析组织网络所使用的网络协议 以收集有关网络设备和
  • RC电路分析计算

    RC电路有一个电容和一个电阻组成 可以是并联或者串联 可用作滤波 移相等 下面以RC串联电路为例计算分析电路的电流电压特性和频率特性 RC串联电路 如上图所示 假设RC电路电源电压为Us 电容大小为C 电容两端电压为Uc 电阻大小为R 电阻
  • 用Python分析2000款避孕套,得出这些有趣的结论

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 如有问题请及时联系我们以作处理 PS 如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 一 分析目标
  • 经销商网上下单系统

    什么是订货通 什么是企业订货管理系统 是一款针对中小型企业通过网络实现 厂家和客户 经销商 批发商 代理商一站式订货系统 最终实现厂家的下游客户通过网络实现实时订货功能 一 订货系统解决的问题 开发网上订货系统用于解决企业和下游订货商对接
  • 文件系统cache机制

    复杂度3 5 机密度3 5 最后更新2021 04 27 AIX并未采用传统Unix的cache模式 传统Unix 包括Linux 的cache模式是把cache作为一个单独的旁路应用 嵌入在文件读写的路径中 当应用请求读文件时 kerne
  • stm32单片机引脚_单片机IO口不够用了,怎么办?

    这几天公子比较闲 像看看手上有没有好玩的模块 于是 公子找到了一款OV系列的摄像头 于是翻了一下自己的2年都没有打开的盒子 公子专门来放开发板的 可是找了半天 都没有找到开发板 费了九牛二虎之力 才找到一块STM32F103C8T6的 长这
  • 带硬件FIFO的串口驱动程序设计思路

    串口具有硬件FIFO可以降低中断频率 对于需要高波特率数据传输 MCU本身速度比较慢 或有更高级优先级中断需要及时处理的场合就显得比较重要 通常 即便串口本身带硬件FIFO 在编写串口驱动程序时 仍然需要在上层在加一层软件FIFO 或Rin
  • Centos7.3服务器配置

    安装node 1 下载并安装NVM脚本 curl https raw githubusercontent com creationix nvm v0 13 1 install sh bash source bash profile 2 列出
  • RabbitMQ--基础--7.5--工作模式--主题模式(Topic)

    RabbitMQ 基础 7 5 工作模式 主题模式 Topic 代码位置 https gitee com DanShenGuiZu learnDemo tree master rabbitMq learn rabbitMq 03 1 介绍
  • java代码分析及分析工具

    一个项目从搭建开始 开发的初期往往思路比较清晰 代码也比较清晰 随着时间的推移 业务越来越复杂 代码也就面临着耦合 冗余 甚至杂乱 到最后谁都不敢碰 作为一个互联网电子商务网站的业务支撑系统 业务复杂不言而喻 从09年开始一直沿用到现在 中
  • Flatbuffers使用解析

    Flatbuffers使用解析 在今日头条偶然看到一个技术分享视频 标题很唬人 json之后下一代数据交换格式 大致是这样 不明觉厉 赶紧打开观看 原来Flatbuffers是Google为游戏或者其他对性能要求很高的应用开发的一种数据交换
  • layer关闭弹窗,刷新父页面

    获取index不要写在函数里 可能获取不到index var index parent layer getFrameIndex window name function closeFram window parent refreshPage
  • React 函数组件

    1 React 组件 函数式组件 1 React提供了两种创建组件方式 1 1 函数式组件 1 2 类组件 执行了ReactDOM render