JSX、JSX的介绍、JSX特点、JSX的语法、XML基本语法

2023-11-20

1、JSX的介绍

​ 什么是JSX:JSX=javascript xml就是Javascript和XML结合的一种格式。是 JavaScript 的语法扩展,只要你把HTML代码写在JS里,那就是JSX

​ 在实际开发中,JSX 在产品****打包阶段****都已经编译成纯 JavaScript,不会带来任何副作用,反而会让代码更加直观并易于维护。官方定义是:类 XML 语法的 ECMAScript 扩展。

2、特点:

​ JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。

​ 它是类型安全的,在编译过程中就能发现错误。

​ 使用 JSX 编写模板更加简单快速。

3、JSX的语法

​ JSX就是把html代码写在javascript中,那么,写在javascript中有啥要求(与原来在html中的区别),这就是jsx语法要说的内容。

​ 示例:

var msg="哥们!"

const element = <h1>Hello, world!{msg}</h1>     没有双引号,不是字符串

const List = () => (

​      <ul><li >list item</li><li>list item</li><li>list item</li></ul>  

  );   

XML基本语法

  • 只能有一个根标签,养成外面加上圆括号的习惯。

  • 标签要闭合(单边标签得有斜杠)

元素类型

  • 小写首字母对应 HTML的标签,组件名首字母大写。

  • 注释使用 / * 内容 */ html标签内注释{/* 最外层有花括号*/}

元素属性

  • 内联样式的style:样式名以驼峰命名法表示, 如font-size需写成fontSize。默认像素单位是 px(px不用写)

    	let _style = { backgroundColor:"red" };
    	
    	ReactDOM.render(
    	    <h1 style={_style}>Hello, world!</h1>, 
    	    document.getElementById('box')
    	);
    
  • 外部样式的class:HTML中曾经的 class 属性改为 className(因为class是js的关键字),外部样式时使用

    	ReactDOM.render(
    	    <h1  className="bluebg">Hello, world!</h1>,
    	    document.getElementById('box')
    	);
    
  • for 属性改为 htmlFor(因为for是js的关键字)。(for属性在html标签中是扩充单选框|复选框的选择范围)

  • 事件名用驼峰命名法。HTML是全小写(onclick),JSX中是驼峰(onClick)

javascript表达式

  • 使用单花括号

    react里没有vue中的指令,任何地方需要javascript的变量,表达式等等,只需要套上 单花括号就行。

    const element = <h1>Hello, {120+130}!</h1>
    const element = <h1>Hello, {getName("张三疯")}!</h1>
    <input type="text" value={val ? val : ""} />
    

    注意:单花括号里只能写表达式,不能写语句(如:if,for)

总结:

​ 对比原生,JSX相当于把原生里的html和javascript代码混写在一起,

​ vue中有很多的指令,react中只需要使用单花括号就行。

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

JSX、JSX的介绍、JSX特点、JSX的语法、XML基本语法 的相关文章

  • 低代码-添加按钮组件设计

    效果图 可拆分为以下细节 按钮列表 删除 两个操作需同步删除 点击外侧删除 点击复选框删除 添加 点击复选框添加 示例代码 技术栈 vue3 arco design ts less tailwindcss
  • 低代码配置-组件列表设计

    过滤字段功能 配置了api 启用 输出配置 filter type Array default gt
  • 低代码配置-列表页组件设计

    保存 表单属性存放 bill 筛选项配置存放 filterLayout 列表按钮存放 buttonLayout 列表布局存放 listLayout api存放 api 数据结构 layout 存放表单基础配置 bill 存放按钮基础配置 b
  • 课设:NFA确定化和最小化程序的设计与实现(html+css+js实现)

    文章目录 问题描述 待解决问题 1 如何存储NFA或者是DFA 2 NFA多初态问题 3 子集化过程思路 4 分割法过程思路 使用方法 下载链接 问题描述
  • 如何解析 React Js 中的最小和最大日期输入?

    我创建了一个函数 该函数返回当前日期的减法或加法 并将结果设置为日期输入的最小值或最大值 我的职能 SubDate subDay gt let tgDate new Date tgDate setDate tgDate getDate su
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 如何在 React.JS 中添加 ClassName 并删除 onScroll 事件?

    我正在尝试制作一个粘性标题 可以根据他在页面上的位置更改其背景颜色 为此 我尝试将 className active 添加到我的样式组件 StyledHeader 中 当滚动位置 Y 高于 400 像素时 它将出现 低于 400 像素时消失
  • 在 JSX 中拥有变量属性的最佳方式是什么?

    希望我的问题很清楚 我主要是在寻找一种将属性动态附加到 JSX 输入的方法
  • 如何通过表单外的按钮提交表单?

    我想通过表单外部的按钮提交表单并对该表单进行验证 我正在使用react bootstrap 中的Form 标签 我的代码不验证表单
  • 反应渲染逻辑 && 与三元运算符

    在反应中render 当 x 的值等于 1 时 逻辑 和三元运算符都会显示Hello并且两者在语法上都是正确的 当我不想显示我的条件的其他部分时 我总是使用 但我遇到过一个代码库 其中大多数地方都使用三元运算符null代替 使用一种方法相对
  • 错误 React.Children.only 期望接收单个 React 元素子元素

    不完全确定我的应用程序出了什么问题 我正在使用 create react app 并且尝试将所有组件渲染到相应的根 div 中 问题是 我能够将所有组件渲染到页面上 除了最后一个组件 分数组件 我什至尝试将该组件放入 div 中 但仍然遇到
  • 在 React 上导入多个图像

    我正在尝试构建一个反应应用程序 并且必须使用多个图像 现在我必须导入我将使用的每个图像 例如 import image from img img1 png img src img 或者还有其他方法吗 PS 我尝试过 require 它也给出
  • && 逻辑运算符 jsx 和 typescript 错误

    我对打字稿还很陌生 我想知道为什么会失败 import CircularProgress from components shared material import React from react import loadingStyle
  • 为什么最好的做法是用括号将分配给变量的 JSX 括起来?

    在下面的示例中 x 和 y 的输出相同 我见过两种方式编写的 React 代码 有区别吗 由于我看到的许多 React 代码示例都使用括号语法 我认为这是有原因的 如果这是最佳实践 那么为什么用括号将分配给变量的 JSX 括起来是最佳实践
  • 将 Marketo 表单添加到 Gatsby/JSX

    我正在尝试将 Marketo 表单添加到 Gatsby 站点中 但在将脚本注入页面的顺序方面遇到问题 当我尝试渲染下面的组件时 收到错误消息 ReferenceError MktoForms2 未定义 我尝试注释掉整个 useEffect
  • 不带 React 的 TypeScript JSX

    我想在 TypeScript 中使用 JSX 语法 但不想使用 React 我在这里看到了其他相关问题的答案 但没有任何内容足够完整或详细 无法提供任何帮助 我读了本指南 https basarat gitbooks io typescri
  • 何时在 JSX 中使用匿名函数

    有人可以解释一下两者之间的区别吗 匿名函数
  • 在react-native中将本地图像uri作为props传递

    我正在尝试将图像的 uri 作为 prop 传递 以便我可以在 React Native 上多次重复使用它 但是 当前的解决方案提示我 require 应该使用字符串文字 const ImageButton source gt
  • TSConfig JSX:React JSX 与 React

    在将 Typescript 与 React 一起使用时 我们必须指定jsx in compilerOptions in tsconfig json file It has preserve react react native react
  • 列表项未正确删除(React)

    如果我的笔记应用程序能提供一些帮助 我将不胜感激 假设我的笔记列表中有 3 个笔记 我想删除列表顶部的注释 无论我尝试删除哪一个 总是首先删除列表最底部的注释 我检查了 React 控制台 应用程序组件状态中的注释数组表明它已正确删除 但从

随机推荐

  • React核心概念:状态提升

    上一节 表单 下一节 组合vs继承 React核心概念 状态提升 引言 添加第二个输入框 编写转换函数 状态提升 经验总结 引言 很多情况下我们使用的多个组件需要对同一个数据做出对应的反应 在这里我们推荐把这个共享的状态提升到距离这些组件最
  • 迅为-iMX6ULL开发板-Python移植-运行测试2

    迅为 iMX6ULL开发板 Python移植 运行测试2 92 3 1 库功能文件测试 进入 install bin 目录下使用命令 python 然后使用 import 加载各模块如图 92 3 1 1 所示则 python移植成功 按
  • opencv学习记录【5】(背景差分算法

    8 26 9 2 背景差分算法 一 帧间差分 最简单的背景提取方法 一帧减去另一帧 函数实现 Void cv absdiff frameTime1 frameTime2 frameForeground 为了去除噪音波动等 常常忽略帧间微小的
  • Vue组件报错For recursive components, make sure to provide the “name“ option.

    在Vue的组件component学习中报错 Vue warn Unknown custom element
  • Fedora 10網卡消失的問題

    http itgroup blueshop com tw towns hc n convew i 6000 今天看到肉鬆Selinux的問題 想說來測試處理一下 將以備份出來的Fedora 10 VM拿出來用 啟動系統後 出現了一個怪問題
  • Python中的itertools.permutations(关键词:itertools/permutations)

    通俗地讲 就是返回可迭代对象的所有数学全排列方式 Python 2 7 12 default Nov 20 2017 18 23 56 GCC 5 4 0 20160609 on linux2 Type help copyright cre
  • python-测试代码

    目录 介绍 测试函数 单元测试和测试用例 可通过的测试 不能通过的测试 测试未通过时怎么办 添加新测试 测试类 各种断言方法 一个要测试的类 测试AnonymousSurvey类 方法setUp 介绍 在本章中你会学习如何使用Python模
  • jvm垃圾回收之Eden、S0、S1、Old的关系

    jvm垃圾回收之Eden S0 S1 Old的关系 https blog csdn net u012799221 article details 73180509
  • 解决win10系统 3dMax只能渲染一次的问题

    是不是很多人疑问为什么自己的电脑配置明明足够 但在3dMax正常运行过程中 渲染一次过后 3dMax便卡住不动了 只能重启解决 无形之中浪费了很多时间 近日 我在使用3dMax时也遇到了此问题 发现是因为win10的微软输入法与3dMax不
  • 解决request.getServletContext()方法报红问题

    getServletContext 方法是Servlet3 0添加的 所以需要引入3 0以上的jar包
  • Tomcat的context path

    本文章转载自 https www cnblogs com yanan7890 p 8329163 html tomcat server xml context path配置需要注意的事情 在tomcat下放个war包 假如我是这样配置ser
  • 代码生成二维码

    使用java生成二维码 前言 使用步骤 xml 生成二维码 二维码转url 总结 前言 Zxing Zxing 是一个开源的 Java 二维码扫描和生成库 由美国 Google 公司的一位开发者 Sean Owen 在 2006 年开发并发
  • 自动化测试——接口测试

    一 接口分类 1 内部接口 测试被测系统各个子模块之前的接口 或者测试被测系统提供给内部用户系统使用的接口 2 外部接口 被测系统调用外部的接口 系统对外提供的接口 接口测试重点 检查结论参数传递的正确性 输出结果的正确性及对各种异常情况的
  • 普通游戏显卡和专业图形显卡的区别

    搞图形设计的朋友应该都知道 显卡分为普通游戏显卡和专业图形显卡 有些人会错误的认为图形显卡比游戏显卡性能强 或者游戏显卡比图形显卡性能强 其实这两种显卡是没有可比性的 因为它们在功能设计上是有一定的区别 这里首先可以告诉大家游戏显卡和图形显
  • Linux学习--CentOS7.5

    CentOS7命令大全 Linux系统简介 Unix Linux发展史 Linux目录结构 树形结构 查看 切换以及创建目录 文本内容操作 grep工具 关机和重启 Linux命令 基本用法 ls list 使用通配符 mkdir 别名 g
  • 机器视觉毕业设计 深度学习人脸识别系统设计与实现 - opencv python

    文章目录 0 前言 1 机器学习 人脸识别过程 人脸检测 人脸对其 人脸特征向量化 人脸识别 2 深度学习 人脸识别过程 人脸检测 人脸识别 Metric Larning 3 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升
  • 时序预测

    时序预测 Matlab实现SO CNN BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测 目录 时序预测 Matlab实现SO CNN BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测 预测效果 基本介绍 程序设计 参考资料 预
  • Google Java编程风格指南

    http hawstein com posts google java style html 目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义
  • .inl文件

    背景 最近工作涉及到thrust库 看了半天也没找到一个头文件的函数定义 本来以为会有一个cpp源文件对应h头文件 后来问头文件的末尾发现了一个include lt inl gt 所以有必要了解这个文件组织形式 引用 作者 Return H
  • JSX、JSX的介绍、JSX特点、JSX的语法、XML基本语法

    1 JSX的介绍 什么是JSX JSX javascript xml就是Javascript和XML结合的一种格式 是 JavaScript 的语法扩展 只要你把HTML代码写在JS里 那就是JSX 在实际开发中 JSX 在产品 打包阶段