## **JSX描述:**
* 全稱:JavaScript XML,react 定義的一種類似于 XML 的 JS 擴展語法: XML+JS
* 作用:用來創建 react 虛擬 DOM(元素)對象
```
var ele = <h1>Hello JSX!</h1>
```
>[danger]注意:它不是字符串, 也不是 HTML/XML 標簽
>注意:它最終產生的就是一個 JS 對象 ,即虛擬DOM
* 標簽名任意:HTML 標簽或其它標簽
* 標簽屬性任意:HTML 標簽屬性或其它
* 基本語法規則
a. 遇到 <開頭的代碼, 以標簽的語法解析: html 同名標簽轉換為 html 同名元素, 其它標簽需要特別解析
b. 遇到以 { 開頭的代碼,以 JS 語法解析: 標簽中的 js 代碼必須用{ }包含
* babel.js 的作用
a. 瀏覽器不能直接解析 JSX 代碼, 需要 babel 轉譯為純 JS 的代碼才能運行
b. 只要用了 JSX,script標簽都要加上 type="text/babel", 聲明需要 babel 來處理
[測試代碼](https://c.runoob.com/front-end/61)
```javascript
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
const vDOM = <h1>Hello, world!</h1>
console.dir(vDOM)
ReactDOM.render(
vDOM,
document.getElementById('example')
);
</script>
</body>
</html>
```