jsxjsx 全称叫做 JavaScript XMLReact 定义的一种类似于 XML 的 js 扩展语法:JS+XMLReact.createElment(标签名, 标签属性, 标签体内容) 方法的语法糖XMLXML 早期用于存储和传输数据<student>
<name>TOM</name>
<age>18</age>
</student>jsx 语法规则// 创建虚拟 DOM
const VDOM = (
<h2 id="atuguigu">
<span>Hello,React</span>
</h2>
)
// 渲染虚拟 DOM 到页面
ReactDOM.render(VDOM, document.getElmentById('test')){} 形式, toLowerCase() 英文大写转小写const myId = 'aTuguigu'
const myData = 'HeLlo,rEact'
// 创建虚拟 DOM
const VDOM = (
<h2 id="{myId.toLowerCase()}">
<span>{myData}</span>
</h2>
)
// 渲染虚拟 DOM 到页面
ReactDOM.render(VDOM, document.getElmentById('test'))jsx 使用 class 不能写 class 要写 className// 创建虚拟 DOM
const VDOM = (
<h2 className="test" id="title">Hello,React</h2>
)
// 渲染虚拟 DOM 到页面
ReactDOM.render(VDOM, document.getElmentById('test'))jsx 写内联样式// 创建虚拟 DOM
// 这里 style 里面的第一层 {} 表示混入 js 第二层 {} 表示是 js 对象
const VDOM = (
<h2 className="test" id="title">
<span style={{color: 'white', fontSize: '20px'}}>Hello,React</span>
</h2>
)
// 渲染虚拟 DOM 到页面
ReactDOM.render(VDOM, document.getElmentById('test'))jsx 语法规则DOM 时,不要写引号JS 表达式时要使用 {}class 需要使用 classNamestyle="{{key: value, key1: value}}", 如果是像 font-size 这里的属性 需要使用小驼峰的形式 fongSizeDOM 只能有一个根标签,学过 VUE 的同学都知道,VUE 只能有一个根标签,和这里是一样的html 同名元素,如果没有找到同名的 html 标签,则报错React 就去渲染组件,如果没有找到,就报错