当前位置: 首页 > news >正文

React基础教程(三):JSX语法

React基础教程(三):JSX语法

1、JSX简介

  1. 全称:JavaScript XML
  2. react定义的一种类似于XML的JS扩展语法:JS+XML
  3. 本质是React.createElement(component, props, ...children)方法的语法糖
  4. 作用:用来简化创建虚拟DOM(注意:它不是字符串,也不是HTML/XML标签;它最终产生的就是一个JS对象)
  5. 标签名任意:HTML标签或其他标签

2、JSX语法规则

  1. 定义虚拟DOM的时候不要写引号
  2. 标签中混入JS表达式时要用{}
  3. 样式的类名指定不要用class,要用className
  4. 内联样式,要用style={{key:value}}的形式去写
  5. 虚拟DOM必须只有一个根标签
  6. 标签必须闭合
  7. 标签首字母:①若小写字母开头,则将改标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。②若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。

代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Hello React</title><!--    引入react核心库--><script src="../js/react.development.js"></script><!--    引入react-dom,用于支持react操作dom--><script src="../js/react-dom.development.js"></script><!--    引入babel,用于将jsx转为js--><script src="../js/babel.min.js"></script>
</head>
<body>
<!--    准备容器-->
<div id="test"></div><!--此处一定要写babel-->
<script type="text/babel">const myId = "react";const myData = "Hello React !!!";// 1、创建虚拟DOMconst virtualDOM = (<div><h1 className={'title'} id={myId}><span style={{color: "red", fontSize: '29px'}}>{myData}</span></h1><h1 className={'title'} id={myId.toUpperCase()}><span style={{color: "red", fontSize: '29px'}}>{myData}</span></h1><label><input type="text"/></label></div>);// 2、渲染虚拟DOMReactDOM.render(virtualDOM, document.getElementById("test"));
</script>
</body>
</html>
<style>.title {background-color: bisque;}
</style>

3、JSX小练习

需求:动态展示如下列表:
在这里插入图片描述

小插曲:什么是表达式?

  1. 一个表达式会产生一个值,可以放在任何一个需要值的地方。
    • 下面这些都是表达式
      • a
      • a+b
      • func(1)
      • arr.map()
      • function test(){}
  2. 语句/代码
    • 下面这些都是语句/代码
      • if(){}
      • for(){}
      • switch(){case:xxxx}

代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>jsx小练习</title><!--    引入react核心库--><script src="../js/react.development.js"></script><!--    引入react-dom,用于支持react操作dom--><script src="../js/react-dom.development.js"></script><!--    引入babel,用于将jsx转为js--><script src="../js/babel.min.js"></script>
</head>
<body>
<!--    准备容器-->
<div id="test"></div>
<!--此处一定要写babel-->
<script type="text/babel">// 模拟一些数据const data = ['Angular', 'React', 'Vue'];// const obj = {name1:'Angular', name2:'Angular', name3:'Angular'};// 1、创建虚拟DOMconst virtualDOM = (<div><h2>前端js框架列表</h2><ul>{data.map((item, index)=>{return <li key={index}>{item}</li>})}</ul></div>); /*此处一定不要写引号,因为不是字符串。这是JSX语法*/// 2、渲染虚拟DOMReactDOM.render(virtualDOM, document.getElementById("test"));
</script>
</body>
</html>
http://www.lryc.cn/news/93534.html

相关文章:

  • 软件测试岗位都是女孩子在做吗?
  • ARP协议,带你了解ARP协议
  • 基于Java汽车客运站管理系统设计实现(源码+lw+部署文档+讲解等)
  • 0203使用规则-索引-MySQL
  • LVS+Keepalived群集
  • 抖音矩阵系统源代码开发部署--源码搭建
  • 如何用Jmeter进行接口测试 ,这应该是全网最详细的教程了
  • C语言---malloc(0)会产生什么结果,真的是空指针吗?
  • 建模助手618 | 谁不囤点Revit插件我都会生气!
  • 【“职场程序员是否会保护自己的隐私?为何要求程序员之间保密薪资?”】
  • 企业工程管理系统源码之提高工程项目管理软件的效率
  • 创新指南 | 推动销售的17个可落地的集客式营销示例
  • ASEMI代理光宝光耦LTV-0314的应用与优势
  • Apikit 自学日记: Apikit 如何发起测试
  • python-glob模块_表格及代码样例
  • GitHub Copilot 最全安装、使用
  • C语言 指针(特别篇)
  • 【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(5月26日论文合集)
  • 网络编程与自动化(python)
  • 有趣的数学 对称/非对称加密简史及数学原理一览
  • AI大模型落地不远了!首个全量化Vision Transformer的方法FQ-ViT(附源代码)
  • YouTubeDNN
  • 面向对象的介绍和内存
  • 【数据可视化】Plotly Express绘图库使用
  • 小红书企业号限流原因有哪些,限流因素
  • 1.6C++双目运算符重载
  • CDD诊断数据库的简单介绍
  • 【笔试强训选择题】Day25.习题(错题)解析
  • Python心经(6)
  • MMPose安装记录