JSX是书写在jsx文件中的看似JavaScript语法但又包含Html标签的一种新的写法。jsx为Javascript的一种扩展语法,tsx则为TypeScript 的扩展语言。其书写看起来有JS也有Xml标签。JSX是ReactApp组成的最小单元元素,React使用Bable编译器将Jsx转换为js对象,提供给React进行页面渲染。

 1,JSX之{大括号}表达式在标签内的使用

在JSX中可以使用大括号来进行嵌入需要替换的部分,可以替换之前定义的变量、函数表达式等表达式,如:

import React from 'react';
import ReactDOM from 'react-dom';const name = "zhang san";
const person ={name:"li si",age:18
}
var newPersonName = function(){return "wang wu";
}const element = <h1>Hello {name} , {person.name} And {newPersonName()}</h1>;ReactDOM.render(element,document.getElementById('root'));

运行结果

在ReactDOM.render函数中第一部分中的jsx也可以使用函数进行jsx对象返回。

var getJsxObj = function(){return <h3>这是JSXObj</h3>;
}ReactDOM.render(getJsxObj(),document.getElementById('root'));

 2,JSX之{大括号}表达式在标签上以属性的方式使用

const element = <img src={url} title={"这是标题"}></img>;

在写style时 style值需要用js对象来解析,所以在有style属性时写法如下:

const divEle = <div style={{border:"2px solid red"}}>{element}</div>;

3,使用大括号还可以进行对危险标签进行转义操作

const script = "<script>alert(999);</script>";ReactDOM.render(script,document.getElementById('root'));

4,JSX多层级嵌套

import React from 'react';
import ReactDOM from 'react-dom';const url = "https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo_top-e3b63a0b1b.png";const element = <img src={url} title={"这是标题"}></img>;
const divEle = <div style={{border:"2px solid red"}}>{element}</div>;ReactDOM.render(divEle,document.getElementById('root'));

5,Bable 转义过程:

const element = (<h1 className="greeting">Hello, world!</h1>
);
//等效转义后的:
const element = React.createElement('h1',{className: 'greeting'},'Hello, world!'
);
//简化后的结构:
const element = {type: 'h1',props: {className: 'greeting',children: 'Hello, world!'}
};

ReactJs 第二章 JSX相关推荐

  1. 王道考研 计算机网络笔记 第二章:物理层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 后续章节将陆续更新- 第二章 一.物 ...

  2. 计算机组成原理-第二章 数据表示与运算

    计算机组成原理-第二章 数据表示与运算 一.数据的表示 1.数值型数据的表示(重点难点) 1.1数值型数据的表示--进位制 1.2数值型数据表示-码制 1.3数值型数据的表示--定点数 1.4数值型数 ...

  3. 2021-08-08概率论与数理统计-第二章

    文章目录 概率论与数理统计-第二章 概率论与数理统计-第二章

  4. 软件构造 第二章 第一节 软件生命周期和版本控制

    软件构造第二章 第一节 软件生命周期和版本控制 基本内容 Software Development Lifecycle (SDLC) Traditional software process mode ...

  5. 第二节认识计算机教案,第二章 第二节 局域网的构建 教学设计_博客

    <第二章 第二节 局域网的构建 教学设计_博客>由会员分享,可在线阅读,更多相关<第二章 第二节 局域网的构建 教学设计_博客(3页珍藏版)>请在装配图网上搜索. 1.第二章 ...

  6. ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区 1 Desktop简介 1.1 ArcGIS for Desktop ...

  7. 第二章 序列比对——Needleman-Wunsch全局比对

    [生信]第二章 序列比对--Needleman-Wunsch全局比对 主要为基因组测序比对相关知识,部分内容作笔记自查使用.如有错误或遗漏还请海涵,可评论或邮箱联系. 最后修改时间:2020-04-0 ...

  8. 第二章 序列比对——Blast局部比对

    第二章 序列比对--Blast局部比对  阅读量: 330 主要为基因组测序比对相关知识,部分内容作笔记自查使用.如有错误或遗漏还请海涵,可评论或邮箱联系. 最后修改时间:2020-04-16 16: ...

  9. Learning Perl学习笔记(1)第二章Scalar Data

    If Control Structure(IF循环) 脚本如下: #!/usr/bin/perl use warnings; use strict; use v5.24; my $line = < ...

最新文章

  1. [给12306支招]取消车票预订-采用全额预售(充值)
  2. UVA11419 我是SAM
  3. DL之LSTM:LSTM算法论文简介(原理、关键步骤、RNN/LSTM/GRU比较、单层和多层的LSTM)、案例应用之详细攻略
  4. Android Bitmap面面观
  5. 【opencv系列04】OpenCV4.X图形绘制
  6. 基于FPGA的UART接口协议设计
  7. 文本编辑软件哪个好_过年倒计时软件哪个好 过年倒计时软件推荐
  8. 关闭内核Debug_log打印!
  9. 千人千面之3D立体个人数据营销
  10. go调用python脚本_谁能取代Python?我使用Go来部署机器学习模型的原因
  11. 重拾JAVA之WinForm实战之(二)
  12. 如何在 16 英寸 MacBook Pro 内置或独立显示器上更改刷新率?
  13. 巧用 SSH 打通外网限制
  14. office2010安装需MSXML版本6.10.1129.0详解解决方案
  15. matlab网格划分提取坐标,ANSYS-划分网格后导出单元和结点坐标等信息
  16. 数据仓库工具hive面试题集锦
  17. 2021年N1叉车司机找解析及N1叉车司机考试试卷
  18. 关于我自己 a propos de moi
  19. Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
  20. Linux中隐藏文件与文件夹

热门文章

  1. Java学习之路之环境的配置
  2. Mybatis调用oracle 存储过程
  3. iframe跨域调用js_郑州Web前端基础学习之JS跨域知识梳理
  4. 云服务器与传统服务器的优劣对比_为什么选择海外云服务器和香港云服务器
  5. css3新增特性集合贴
  6. Dw序号列表如何通过html语言加,使用DW软件实现html编码转换的详细步骤
  7. 四元数组旋转_四元数应用——顺序无关的旋转混合
  8. Datrium公司以几近疯狂的方式提升速度表现
  9. Java核心技术卷I基础知识1.2.7 可移植性
  10. 第十三篇:multimap容器和multiset容器中的find操作