JSX的基础使用(二)

2023-11-07

1.事件绑定

  •  React 事件的 命名采用小驼峰式(camelCase),而不是纯小写
  • 们需要 通过{}传入一个事件处理函数 ,这个函数会在事件发生时被执行;

2.this绑定

  • bind给btnClick显示绑定this;
  • 使用 ES6 class fields 语法
  • 事件监听时传入箭头函数 (箭头函数this不绑定,this默认获取外层this);

3.事件参数传递

  1. 需要获取event对象

        有些时候我们需要拿到event对象来做一些事情(比如阻止默认行为),默认情况下,event对象有被直接传入,函数就可以获取到event对象;

     2.获取更多参数

        有更多参数时,我们最好的方式就是传入一个箭头函数主动执行的事件函数,并且传入相关的其他参数

4.条件渲染

一般情况下,jsx是通过babel帮我们进行语法转换
在vue中,通过指令来控制:比如v-if、v-show;
在React中, 所有的条件判断都和普通的JavaScript代码一致

5.JSX的本质原理

实际上,jsx 仅仅只是 React.createElement(component, props, ...children) 函数的语法糖。

createElement需要传递三个参数:
参数一:type
  • 当前ReactElement的类型;
  • 如果是标签元素,那么就使用字符串表示 “div”;
  • 如果是组件元素,那么就直接使用组件的名称;
参数二:config
  • 所有jsx中的属性都在config中以对象的属性和值的形式存储;
  • 比如传入className作为元素的class;
参数三:children
  • 存放在标签中的内容,以children数组的方式进行存储;

react从jsx到虚拟dom到真实dom的过程

通过 React.createElement 最终创建出来一个 ReactElement对象,组成了一个 JavaScript的对象树,JavaScript的对象树就是虚拟DOM(Virtual DOM),通过ReactDOM.render让 虚拟DOM 和 真实DOM同步起来,再将虚拟dom转换成真实dom, 这个过程中叫做协调。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSX的基础使用(二) 的相关文章

随机推荐

  • 常用字符设备驱动函数总结 ----- 记录总结tool

    打印等级 define KERN EMERG lt 0 gt system is unusable define KERN ALERT lt 1 gt action must be taken immediately define KERN
  • Java中的package(包)

    package类似一个文件夹 文件夹内有各种文件 package存在的意义是防止命名冲突造成使用不便 同一个文件夹内无法存在同名的文件 而不同名的文件夹里允许存在同名文件 因此不同文件夹 即不同package中允许出现相同class名 ja
  • Python中`__init__.py`详解

    在Python中 init py 是一个特殊的文件 用于标识一个包 Package 包是一个包含模块 Module 和其他子包的文件夹 它允许你将相关的模块组织在一起 方便管理和导入 以下是关于 init py 的详细解释 1 包的结构 在
  • windows下添加路由

    1 首先在 运行 窗口输入cmd 按WIN R打开运行窗口 然后回车进入命令行 2 在命令行下输入route命令 会有对应的提示信息 ROUTE f p 4 6 command destination MASK netmask gatewa
  • 【单目标优化算法】杂草优化算法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 杂草算法代码简单 易于实现 具有较强的自适
  • C#根据经纬度计算两点距离(单位是千米)

    SQL CREATE function dbo fnGetDistance LatBegin REAL LngBegin REAL LatEnd REAL LngEnd REAL RETURNS FLOAT AS BEGIN DECLARE
  • java-面试题

    来源 牛客网 1 什么是Java虚拟机 为什么Java被称作是 平台无关的编程语言 Java虚拟机是一个可以执行Java字节码的虚拟机进程 Java源文件被编译成能被Java虚拟机执行的字节码文件 java的跨平台不是java源程序的跨平台
  • 小程序多种姿势更换文章

    概述 简单的文章切换demo 通过倒计时 摇一摇 双击进行文章切换 详细 直接看效果图吧 比较简单 主要是练习一下 小程序不带双击事件 可以记录第一次单击事件和第二次单机事件进行双击操作 1 摇一摇是通过调用官方的 2 wx onAccel
  • MATLAB安装MinGW-w64 C/C++ 编译器

    参考链接 matlab安装 MinGW w64 C C 编译器 上面的链接非常详细 可以之间看上面的 下面是我安装过程的总结 1 官网安装不成功 2 MinGW w64 for 32 and 64 bit Windows download
  • 通过Python在Windows或Linux上快速搭建HTTP服务器

    在Windows 7 10或Ubuntu上可以通过python2 x或python3 x来快速搭建一个简单的HTTP服务器 如果python为2 x 则可执行 python m SimpleHTTPServer 或 python2 m Si
  • 网上能搞什么副业?适合网上搞的副业

    现如今互联网时代 线上副业早已经普遍 有些工作不再需要线下交谈对接 只要有网络就可以搞定 线上副业已经不再是个人的选择 而是刚需 很多普通人的工资收入都不高 但是又不敢轻易辞职 于是就冒出了开启副业的想法 互联网的兴起让一大批人实现了副业收
  • Python的virtualenv虚拟环境

    Python的virtualenv虚拟环境 1 安装虚拟环境 1 1 创建虚拟环境 1 2 激活虚拟环境 1 3 退出虚拟环境 1 4 删除虚拟环境 2 使用虚拟环境 其实一直在Python的虚拟环境 确实很好用 这次想总结一下 好方便自己
  • 性能需求指标

    通常我们都从两个层面定义性能场景的需求指标 业务指标和技术指标 性能测试行业常用的性能指标表示法 TPS 每秒事务数 T没有规定 所有相关的人都要知道你的 T 是如何定义的 通常情况下 我们会根据场景的目的来定义 TPS 的粒度 如果是接口
  • python开发工程师是干嘛的-python工程师是做什么的

    对于大多数人来说 可能只知道python这个名字 或者也听说过Python在云计算 大数据 人工智能里面都有运用 学Python未来发展前景还比较好 但是并不知道Python具体可以做些什么 在哪些应用场景下可以使用Python语言 最近也
  • 品味树莓派:GPIO Zero库远程控制功能使用

    文章目录 目的 使用前准备 树莓派设置 控制端设置 远程控制GPIO口 总结 目的 使用GPIO Zero库可以通过网络远程控制树莓派的上GPIO口 本文将对该功能进行简单说明 使用前准备 树莓派设置 使用GPIO Zero库远程功能首先需
  • Unity实现2D游戏跟随摄像机(平滑移动)

    文章目录 运行效果 玩家角色 脚本 字段 跟随逻辑 完整代码 其他相关文章连接 运行效果 摄像机运行效果如下所示 玩家角色 首先创建一个可用的玩家角色 写好移动逻辑 如果要使用在Unity商店中购买的资源 可以点击Window菜单栏 gt
  • 【Hexo】【Blog】更换主题【简】

    下载 Hexo themes Github NEXT主题 新建文件夹 这里想偷个懒一次装好 需要安装一些插件工具 有些小头疼 还是从GitHub拉下来再去改个性化的界面吧 ps 用git拉下来的话也比较慢 如果不换源的话 我依旧down下来
  • 解密Kerberos流量

    以下主要演示如何通过将keytab导入到wireshark 实现对Kerberos协议进行解密 Keytab 那么Keytab是什么 keytab是可以理解为一个密钥表 是key table的缩写 用途类似于用户的密码 keytab中包含一
  • Docker实战:docker compose 搭建Rocketmq

    1 配置文件准备 1 1 新建目录 home docker data rocketmq conf mkdir home docker data rocketmq conf 1 2 在上面目录下新建文件broker conf文件 内容如下 b
  • JSX的基础使用(二)

    1 事件绑定 React 事件的 命名采用小驼峰式 camelCase 而不是纯小写 们需要 通过 传入一个事件处理函数 这个函数会在事件发生时被执行 2 this绑定 bind给btnClick显示绑定this 使用 ES6 class