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

news/2024/11/7 12:38:12/

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.ppmy.cn/news/404100.html

相关文章

微机保护的数据采集系统(2)

&#xff08;二&#xff09;采样保持电路&#xff08;S&#xff0f;H&#xff09;和模拟低通滤波器&#xff08;ALF&#xff09; 1&#xff0e;采样保持电路&#xff08;S&#xff0f;H&#xff09; &#xff08;1&#xff09;采样保持原理。 S&#xff0f;H电路的作用是在一个…

小程序 自定义组件引用scroll-view 滚动事件监听不了

好几个业务页面都使用了scroll view里面的item也很很类似&#xff0c;所以想 自定义一个滚动scroll-view&#xff0c;把事件封装起来调用。 但是bindscroll事件怎么都没有执行。 wxml <view><scroll-view style"margin-top:{{nav_height}}px;height:{{windowH…

Incorrect string value: '\xE6\x9D\x91\xE4\xB8\x8A...' for column 'name'错误解决

错误原因: 出现这种问题是因为你的该字段的编码格式问题,一般是插入中文数据的时候出现这样的问题 解决方案: 修改该字段的编码格式为utf-8,为了防止新建的表出现这种问题,最好把数据库的编码格式也修改一下.

C语言 9:f(x)g(x)模式运用数学函数pow sqrt abs

//pow() abs() #include"stdio.h" #include"math.h" //调用 int main() {int m,n,x;float s;printf("请输入x");scanf("%d",&x);m3*x-5;npow(m,5); // n abs(m)6; printf("%d\n",n);return 0; } //sqrt() #inclu…

macOS 12 CleanMyMac X 4.8.9 闪退解决办法

打开CleanMyMac X 偏好设置&#xff0c;声音 “为主要的CleanMyMac X 操作播放声音” 取消勾选&#xff0c;就能正常使用了。

移远 4G EC20 高通 9X07 工业级 车规级 CAT4 CAT6

EC20 是移远通信推出的最高LTE Cat 6无线通信模块&#xff0c;采用LTE 3GPP Rel.11 技术&#xff0c;支持最大下行速率300Mbps和最大上行速率50Mbps&#xff1b;同时在封装上兼容移远通信UMTS/HSPA UC20模块以及移远通信多网络制式LTE Cat 3 EC20模块&#xff0c;实现了3G网络与…

荣耀九x什么时候升级鸿蒙系统,好消息!荣耀9X年内将全部升级华为鸿蒙操作系统...

华为鸿蒙HarmonyOS操作系统应用在手机上的日期越来越近了。根据此前MateX2发布会的消息&#xff0c;四月起MateX2等麒麟9000平台机型将率先升级。 一款操作系统除了稳定性和易用性之外&#xff0c;生态应用的支持程度也决定着他的成败。所以华为最需要做的就是扩大搭载鸿蒙系统…

华为荣耀9x如何安装谷歌框架

华为系列手机原本自带谷歌框架&#xff0c;但据说最新的EMUI9在低端机中已经不支持谷歌框架了。花粉俱乐部中有其他机型的朋友说使用官方的gms安装器可以安装&#xff0c;但亲测荣耀9X不可以。作为一个重度谷歌用户来说&#xff0c;没有谷歌是不可能的。 so,这里记录一下华为荣…