jsx
jsx
全称叫做 JavaScript XML
React
定义的一种类似于 XML
的 js
扩展语法:JS+XML
React.createElment(标签名, 标签属性, 标签体内容)
方法的语法糖XML
XML
早期用于存储和传输数据<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
需要使用 className
style="{{key: value, key1: value}}"
, 如果是像 font-size
这里的属性 需要使用小驼峰的形式 fongSize
DOM
只能有一个根标签,学过 VUE
的同学都知道,VUE
只能有一个根标签,和这里是一样的html
同名元素,如果没有找到同名的 html
标签,则报错React
就去渲染组件,如果没有找到,就报错