開始前我們先直接上一段程式碼
const element = <div style= {{ color: red }}>123</div>
讀者看到這邊應該會很好奇為何我們可以直接在 JavaScript
上,直接撰寫 HTML
、CSS
。注意喔,<div style= {{ color: red }}>123</div>
這段程式碼前後並沒有單引號所以不是字串喔!
這種可以直接在 JavaScript
上撰寫 HTML
的做法就是 JSX
。
這種類似 HTML
的語法結構,是 React
自創的語法,它可以讓我們直接把程式邏輯跟 UI 直接放一起。
範例:
import React from 'react'; //以前舊版本需要,目前新世代都不需要
function App(){
return (
<div>
<h1>Demo<h1/>
</div>
)
}
export default App;
return React.creatElement(
'div',
{},
React.createElement('h1',{}, 'Demo');
);
// createElement 會帶三個參數,第一個是標籤 第二個是物件 最後一個則是其他子元素
JSX
其實每次在 return
是就是一個 function
,也因此我們不會在 return
中寫兩個 function
。所以我們外層一定有 div
包住的主因。而這也是為什麼 React
只能掛載在一個 rootElement
原因,我們看它資料結構就蠻清楚為何我們不能回傳兩個 div
。
JSX
語法中只能有一個根元素{}
包起來<div className="Demo"></div>